2012-04-24 188 views
0

如果可能,我希望在返回模板类的类中有一个函数,其中类和类模板值是模板参数。例如,成员函数的模板类和类型返回类型

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

但是,如果我这样做,我会得到错误,如

错误C2988:无法识别的模板声明/定义

错误C2059:语法错误: '<'

错误C2143:语法错误:缺少';'在'}'之前

错误C2238:在';'之前的意外标记(s)

是否有可能按照我提供的来做一些事情?如果是这样,怎么会这样?如果不是,为什么不,还有什么可以提出的其他建议?

回答

4

模板模板参数的语法是

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

为什么'类ClassType'而不是'模板ClassType'? – judeclarke 2012-04-24 02:05:23

+0

@judeclarke语法是'template