C++相談室 part14
■ このスレッドは過去ログ倉庫に格納されています
0707デフォルトの名無しさん
NGNGvoid operator = (T) { }
};
template<typename T> struct C2: public C1<const T *>{
// wow!
// void operator = (const T * a) {
// C1<const T *>::operator = (a);
// }
};
int main(int ac, const char *av[]) {
C2<char> c;
c = "foo"; // <-!!??
return 0;
}
C2::operator = () を定義してやらないと "!!??" の部分で
コンパイルエラーになるのが悔しくて悔しくてアタシ夜も眠れません。
エラーメッセージはこんな感じ ( g++ 3.2 )
> no match for `C2<char>& = const char[4]' operator
g++ も VC++ も同様なのでコンパイラのバグじゃないと思うんだけど
これはれっきとした仕様でしょうか?
■ このスレッドは過去ログ倉庫に格納されています