• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テンプレートクラス内のテンプレートクラス(インナークラス)のメソッドを実装ファイルで定義したい)

C++テンプレートクラス内のメソッドを実装ファイルで定義する方法

このQ&Aのポイント
  • C++のテンプレートクラス内で入れ子クラスのメソッドを実装ファイルに定義する方法について教えてください。
  • 現在、テンプレートクラス内の入れ子クラスのコンストラクタを宣言のみにしていますが、別途実装ファイルに定義したいと考えています。
  • しかし、メソッドのシグネチャの書き方が分からず困っています。どのように書けば良いのでしょうか?環境はVC7.1かVC8です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

template < typename T1 > struct A {  template < typename T2 >  struct B {   B( A const& arg );  }; }; template<typename T1> template<typename T2> A<T1>::B<T2>::B( A<T1> const& arg ) { } int main() {  A<int> a;  A<int>::B<char> c(a); }

fioletti
質問者

お礼

epistemeさん、動きました。 こんな書き方があったのかと思い調べたところ、 C++Primer3版p880に説明を見つけることができました。 メンバテンプレートの外部定義というんですね。 今回はたいへん勉強になりました。ありがとうございます。