成员函数的模板化类和类型返回类型

时间:2012-04-24 01:45:19

标签: c++ templates generics design-patterns

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

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

但是,如果我要做这样的事情,我会收到诸如

之类的错误
  

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

     

错误C2059:语法错误:'&lt;'

     

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

     

错误C2238:';'

之前的意外标记

是否可以像我提供的那样做一些事情,如果是的话,怎么做?如果不是,为什么不,还有其他可以建议的东西吗?

1 个答案:

答案 0 :(得分:4)

模板模板参数的语法是

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