可移动转换运算符的语法是什么?
我有一个包装在obj
周围的包装纸,它具有obj
转换运算符:
class wrap {
public:
operator obj() { ... }
private:
obj data_;
};
我如何确定是否应该复制或移动data_
?
其语法将如下所示:
class wrap {
public:
operator obj() const & { ... } //Copy from me.
operator obj() && { ... } //Move from me.
private:
obj data_;
};
无法调用第二个版本时将调用第一个版本(即:正在转换的wrap
实例不是临时的,或者没有明确使用std::move
。]
注意,Visual Studio在VS11中没有实现r值引用的这一方面。