可動変換演算子の構文は何ですか?
をラップするラッパーがobj
あり、obj
変換演算子があります。
class wrap {
public:
operator obj() { ... }
private:
obj data_;
};
data_
コピーまたは移動する必要があるかどうかを確認するにはどうすればよいですか?
可動変換演算子の構文は何ですか?
をラップするラッパーが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_;
};
最初のバージョンは、2 番目のバージョンを呼び出すことができない場合に呼び出されます (つまり、wrap
変換されるインスタンスが一時的なものではないか、明示的に が使用されていない場合std::move
)。
Visual Studio は、VS11 で右辺値参照のこの側面を実装していないことに注意してください。