C++相談室 part7
■ このスレッドは過去ログ倉庫に格納されています
0021デフォルトの名無しさん
NGNG{ friend bool operator ==(const Test<T>& t1,const Test<T>& t2); };
//CTestをcharに特殊化
template<> class CTest<char>
{ friend bool operator ==(const Test<char>& t1,const Test<char>& t2); };
上の二つのクラスに、別々のoperator == をつけようと思い、
(1)か(2)の方法でクラス外で定義して、クラスにはfriendで実装
しようと思ったのですが、どちらもエラーになります。
これは不可能なことなのでしょうか?
(1)クラス外の関数の特殊化を試みる > Error!
template <typename T> bool operator ==(const Test<T>& t1,const Test<T>& t2)
{return true;}
template <> bool operator ==(const Test<char>& t1,const Test<char>& t2)
{return true;}
(2)別々に operator を作る。 > Error!
(クラス外定義なのでオーバーロードできないみたい)
bool operator ==(const Test<int>& t1,const Test<int>& t2)
{return true;}
bool operator ==(const Test<char>& t1,const Test<char>& t2)
{return true;}
■ このスレッドは過去ログ倉庫に格納されています