2016-03-24 31 views
0

次のテンプレート構造体を作成しました。ここで、2番目のテンプレートパラメータはテンプレートテンプレートパラメータです。私は突然の構造体の関数の戻り値の型として使用したいと思います。テンプレート関数をクラス関数の戻り値として使用

template<typename T, template<typename /*T*/, typename /*U*/> typename V> 
struct MyStruct 
{ 
    V myFunction(); 
} 

私はVを返してみましたが、それは明らかに動作しません。私はその後V<T, U>を返そうとしましたが、うまくいきません。 パラメータを第3のテンプレートパラメータMyStructとして宣言するか、他にもやりたいことを行う方法はありますか?

答えて

1

Vの引数リストがありません。ただし、あなたが言ったようにV<T, U> myFunction();を使用することはできません。 Uなどを使用する場合は、追加する必要があります。例:

template<typename T, template<typename /*T*/, typename /*U*/> typename V, typename P> 
struct MyStruct { 
    V<T, P> myFunction(); 
}; 
関連する問題