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