說我有一類被覆蓋的賦值操作符:防止分配給右值
class Test
{
public:
Test& operator =(const Test&) {return *this;}
};
Test f();
有沒有什麼辦法讓它編譯時錯誤分配給一個函數的結果?
例子:
f() = test();
Test t;
f() = t;
// if there were also a Test Test::operator+(Test);
(t + t) = test();
這已經發生了基本類型,我想將它複製該類:
int g();
g() = 5; // error
(3 + 4) = 5; // error
編輯:我使用Visual C++,這不支持所有的C++ 11。具體來說,它不支持ref-qualifiers。
讓f()返回'const Test'? – ddemidov