我想了解新的C++ 11功能;更具體地說,引用限定符(其中之一)限制了賦值給右值。但由於某種原因,我無法獲得此代碼的工作。當我將A
對象a
指定爲左值x
(a = x
)時,出現錯誤。當我把基準預選賽出爲什麼我在'a = x'中得到與operator =不匹配的錯誤?
prog.cpp:5:47: error: expected initializer before
'&'
token
prog.cpp: In function'int main()'
:
prog.cpp:15:9: error: no match for'operator='
in'a = x'
prog.cpp:3:10: note: candidate is: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;
}
代碼工作。我可能做錯了什麼?
你使用什麼編譯器? – PiotrNycz