私は新しい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;
}
参照修飾子を削除すると、コードは機能します。何が間違っているのでしょうか?