【发布时间】:2014-08-27 12:32:59
【问题描述】:
我检查了 StackOverflow(尤其是 casting operator - const vs non-const)和 user-defined conversion - cppreference.com 上的问题,但我没有发现非常量版本的有用示例。
在哪些情况下非 const 类型转换运算符有意义?
背景(一个编辑):这个问题来自于一个简单的实现平面内存布局的可选模板类。在这里,我希望对包含的类型进行隐式强制转换,我的第一种方法是这样的(没有const):
template <typename T>
class Optional
{
public:
operator T() { return value; }
// ...
private:
T value;
// ...
};
在编译器提醒我之后,我很好奇这(当返回 rvalue 时)在任何情况下都是错误的。
【问题讨论】:
标签: c++ operator-overloading constants typecast-operator