可動変換演算子の構文は何ですか?変換演算子のセマンティクスを移動
私は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
インスタンスが変換され、一時的ではないではないか、まったくあり
どうすれば 'data_'を' std :: string'に移動できますか? 'data_'が' std :: string'でもあった場合、この質問はもっと意味があります。 – ildjarn
@ildjarn質問は、変換演算子に関する移動セマンティクスに関するものであり、特にchar *やstd :: stringに関するものではありません。 –
それはもっと理にかなっています。最初の例として最悪の可能性のあるデータ型を選択したばかりです。 ; - ] – ildjarn