私は新しいC++11の機能を理解しようとしています。より具体的には、参照修飾子(そのうちの1つ)は、割り当てを右辺値に制限します。しかし、何らかの理由で、このコードを機能させることができません。A
オブジェクトa
を左辺値x
( )に割り当てると、エラーが発生しますa = x
。
prog.cpp:5:47:エラー:
'&'
トークンの前に初期化子が必要ですprog.cpp
:関数内'int main()'
:
prog.cpp:15:9:エラー:prog.cpp:3:10に一致しません'operator='
:'a = x'
注:候補は:A& A::operator=(const A&)
struct A {
template <typename T> auto operator = (T) & -> A & {
return *this;
}
};
int main() {
A a;
int x = 4;
a = x;
}
参照修飾子を削除すると、コードは機能します。何が間違っているのでしょうか?