我查看了StackOverflow上的问题(特别是casting operator - const vs non-const)和user-defined conversion - cppreference.com,但是我没有找到非const版本的有用示例。
在哪些情况下会使用非const转换运算符?
背景(编辑):这个问题起源于一个用于平面内存布局的“可选”模板类的简单实现。在这里,我希望将其转换为包含类型的隐式转换,我的第一种方法是这样的(没有const):
在哪些情况下会使用非const转换运算符?
背景(编辑):这个问题起源于一个用于平面内存布局的“可选”模板类的简单实现。在这里,我希望将其转换为包含类型的隐式转换,我的第一种方法是这样的(没有const):
template <typename T>
class Optional
{
public:
operator T() { return value; }
// ...
private:
T value;
// ...
};
编译器提醒我后,我很好奇这种情况(返回rvalue)是否在任何情况下都是错误的。