인터페이스가 일치하는 두 개의 콜렉션에 사용하고자하는 복잡한 함수가 있다면 (적어도 함수에 관한 것만 큼) 템플릿 코드를 다시 사용하는 방법이 있습니까?다른 인수에 대해 동일한 템플릿 함수를 사용합니까?
예: I은 단부, 크기, 배열 및 벡터 모두 공통으로있는 다른 기능을 시작 사용할 경우
void DoSomethingIntense(std::vector<blah> myBlah);
void DoSomethingIntense(std::array<blah> myBlah);
그것을 입력 할 필요없이 DoSomethingIntense 본체를 다시 사용하는 방법이 두 번 (또는, 천국에 넣지 마시고 매크로에 채워 넣으시겠습니까?)
(예제 코드를 nitpick하지 않습니다, 그것은 도움이되지 않습니다 제발 사람)
UPDATE : 내 사과, 내가 문제의 기능이 서명과 일치하지 않는 클래스에 대한 다른 구현을 가지고 언급 무시; 모든 인수가이 두 가지에 대해 작동하는 코드를 사용하도록 만드는 것은 옵션이 아닙니다.
필자는이 시나리오에서 이터레이터 솔루션이 가장 좋다고 생각합니다.
템플릿 기능이 꼭 필요한 기능이 아닙니까? 귀하의 질문에 명백한 대답이 포함되어 있기 때문에 혼란 스럽습니다 ... –
이것은 템플릿 기능이 아니지만 반드시 있어야합니다. – tadman