2012-04-24 3 views
0

가능하면 클래스 및 클래스 템플릿 값이 템플릿 매개 변수 인 템플릿 기반 클래스를 반환하는 함수를 갖고 싶습니다. 예를 들어,템플릿 클래스 및 유형 반환 함수 유형에 대한 멤버 함수

class AClass 
{ 
public: 
    template<typename ClassType, typename ClassTemplateType> 
    ClassType<ClassTemplateType>* TestFunction() { return NULL; } 
}; 

그러나, 나는 오류를 얻을 것이다이 같은 작업을 수행하는 경우 등

오류 C2988 등 : 인식 할 수없는 템플릿 선언/정의

오류 C2059 : 구문 오류 : '<'

오류 C2143 : 구문 오류 : ';'이 (가) 없습니다. 앞에 '}'

오류 C2238 : ';'앞에 예기치 않은 토큰이 있습니다.

내가 제공 한대로 할 수 있습니까? 그렇다면 어떻게해야합니까? 그렇지 않다면 왜 제안 할 수있는 다른 것이 있습니까?

답변

4

템플릿 템플릿 매개 변수의 구문은

template<template<typename> class ClassType, typename ClassTemplateType> 
ClassType<ClassTemplateType>* TestFunction() { return NULL; } 
+0

왜 그것을'클래스 ClassType'가 아닌'템플릿 ClassType'입니까? – judeclarke

+0

@judeclarke이 문법은 'template