2012-04-24 186 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