2012-04-24 23 views
0

可能であれば、クラスとクラステンプレートの値がテンプレートパラメータである、テンプレート化されたクラスを返すクラス内の関数が必要です。認識できないテンプレート宣言/定義メンバ関数のテンプレートと型の戻り型

エラーC2059:構文エラー:私はこのような何かをした場合たとえば、

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

はしかし、私はそのような

エラーC2988としてエラーが発生します'<'

エラーC2143:構文エラー: ';'がありません。前 '}'

エラーC2238: ';'の前に予期しないトークンがあります。

私が提供したように何かをすることは可能でしょうか?あれば、それはどうですか?そうでない場合、なぜそうではないと示唆できる何か他にありますか?

答えて

4

テンプレートテンプレートパラメータの構文は

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

ですなぜそれが 'クラスClassType'なく'テンプレートClassType'のですか? – judeclarke

+0

@judeclarke構文は 'template