1
我有一個模板類,看起來像:如何使轉換操作符返回參考和非參考
template<class T>
class A
{
public:
operator T() const { return value;}
operator T&() { return value;}
private:
T value;
}
看來,operatorT()const的永遠不會被調用。即使是在這樣的
const int a = myA;
其中MYA是A. 的實例聲明中有什麼問題,與上面的代碼失蹤?
與你的問題沒有直接關係,但我認爲這可能是一個不好的做法。更好的辦法是讓'operator T()const'返回'const T&',或者讓兩個操作符返回'T'。 'const'對象不應該與非''contst'對象具有不同的語義*,除非*它們不能被修改。 – Brian
'&&'另一方面應該返回'T'或'T &&'。 – Yakk