テンプレートクラス上での代入演算子を複数オーバーロードしよう
としたのですが、何故かコンパイル次にエラーコードが出て出来ません。
元々不可能なのでしょうか。
テンプレートではない普通のクラスだと出来ます。
OSはWindows 10、開発環境はVisual Studio 2015です。
エラーコードは「C2059 構文エラー: '='」、
「C2238 ';' の前に無効なトークンがあります。」、
「構文エラー: 'return'」
が繰り返し出ます。
エラーが起きるサンプルコードは以下のとおりです。よろしくお願いします。
C++
1class Test 2{ 3 public: 4 int test; 5}; 6 7template<class T> 8class Foo :public Test 9{ 10 public: 11 int foo; 12 // コピーコンストラクタ 13 Foo(const int &bar) { 14 foo = bar; 15 }; 16 Foo &Foo::operator=(const Test& bar) 17 { 18 foo = bar.test; 19 return (*this); 20 }; 21 Foo &Foo::operator=(const Foo& bar) 22 { 23 foo = bar.foo; 24 return (*this); 25 }; 26};
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/01 13:15
2017/03/01 13:34
2017/03/01 13:51
2017/03/02 10:14
2017/03/02 12:09