0

내가 템플릿 메타 프로그래밍에 아주 새로운 해요 및이 방법에 내 생각의 오류를 찾을 수 없습니다 :을 전문화 함수 템플릿 결과

template <typename T> 
    typename T::ReturnType Query(const std::string& Str); 

template <> 
ResultTypeRowCount Query(const std::string& Str) { return this->queryRowCount(Str); } 

ResultTypeRowCount이 이름 returnType이 읽기

감사합니다와 공용 형식 정의를 구현

+0

여기서 수행하려는 작업에 대해 자세히 설명해 주실 수 있습니까? C++은 함수의 반환 형식을 추론하지 않습니다. 왜냐하면 인수 만 주어지면 'T'를 추론 할 방법이 없기 때문입니다. 여기서 예상되는 행동은 무엇입니까? – templatetypedef

+0

어떤 종류의 반환 형식 오버로드를 보관하려고합니다. 템플릿을 가상으로 선언 할 수 없기 때문에 함수를 전문화에 매핑합니다. – Mythli

답변

2

이 있어야한다 :

template <> 
ResultTypeRowCount::ReturnType Query<ResultTypeRowCount>(const std::string& Str) { return this->queryRowCount(Str); } 
1

Specializi 템플릿이 다음 패턴을 따라야합니다.

template<typename T> 
    void foo() { 
    } 

template<> 
    void foo<int>() { 
    } 
+0

당신의 대답이 질문자가 틀린 것과 정확하게 일치하는 것을 제외하면 올바른 생각. – Novelocrat

+0

사실입니다. 나는 가장 관련성이있는 것 같지 않은 템플릿 메타 프로그래밍 개념을 놓쳤다. 물고기를 배우는 것, 그리고하지 않는 것. –