7
Foo1<T>
とFoo2<T>
という2つのクラスがあるとします。悲しいことにテンプレートテンプレートパラメータを宣言する方法
template<class T, class Y> std::vector<Foo1<T>> bar(std::vector<Y<T>>&)
コンパイラは<Y<T>>
が好きではありません。
私は、常にstd::vector<Foo1<T>>
またはstd::vector<Foo2<T>>
への参照を取る関数bar
を作成したいが、はstd::vector<Foo1<T>>
を返します。ビット。これを1つの方法は、2つのオーバーロードを提供することですが、それは正しいので、私は上記を整理する方法はありますか?
ありがとうございました。あなたは天使だ! –
C++で始める14 'Y'は' class'ではなく 'typename'でも宣言できます。 'T'パラメータは常に宣言することができます。言語に少しだけ統語的な一貫性が追加されています。 – emsr
@emsr 'class'を' template'の中で排他的に使うのが好きです。単に 'typename T :: type'の検索を簡単にするためです。 – TemplateRex