タイプがテンプレートクラスで、別のテンプレートクラスの別の変数を作成したいのに同じテンプレートパラメータを使用したいのですがどうすればいいですか?異なる変数テンプレートタイプから変数のテンプレートタイプを構築する
以下の例は機能しませんが、私が達成しようとしていることのアイデアが得られればうれしいです。これを行う特別な方法がない場合は、これを行うためにルックアップテーブルのデザインパターンを作成する方法がありますか?私はおそらく6つまたはそれ以上の異なるテンプレート型があります。
template<typename T>
class A{
public:
typedef T Type;
};
template<typename T>
class B{};
int main(void){
A<int> var1;
B<var1::Type> var2;
}
これは重複した質問ですが、これまでに尋ねたようなことはありませんでした。
EDIT
私は、これは、サードパーティのライブラリを使用せずに、Visual Studioの2010年とgccで動作するための方法をしたいと思います。したがって、C++ 11のすべての機能がサポートされるとは限りません。
また、typedef A<int>
を使用せずに、またはA<int>
を知っているので、このコードは単にテストケースのシナリオで、私が望むものの基本的な機能を示すことができます。タイプがテンプレートだった変数からテンプレートタイプを取得する方法が必要です。
B<decltype(var1)::Type> var2;
をし、それが動作するはずです:
FWIW、コンパイルするあなたの例を得るために、変更 ' VAR1;' VAR1のtypedef 'へ;' –
@Jesseポイントは 'var1'は、変数、ないタイプであるということです。 –
OK、私はそれをテストすることはできませんが、VS2010で動作する別のバリアントを追加しました。 – juanchopanza