21

移動コンストラクター/代入がスローできるかどうかに関して、矛盾する記事をいくつか読んでいます。

したがって、ムーブ コンストラクター/代入が最終的な C++11 標準でスローできるかどうかを尋ねたいと思いますか?

4

2 に答える 2

28

ムーブコンストラクターは一般的にスローできますか? はい。彼らはすべきですか?いいえ。

一般に、それらの中で行うことは、スローできるものであってはなりません。メモリを割り当てたり、他のコードを呼び出したりするべきではありません。move コンストラクターを作成する唯一の理由は、他の誰かのメモリ ポインターとオブジェクト参照を放棄することです。いくつかの基本的な型をコピーし、他のオブジェクトの値を無効にする必要があります。それらのものは投げるべきではありません。

したがって、許可されていますが、良い考えではありません。実行している場合は、移動操作で実行していることを再考してください。

于 2012-02-12T17:05:42.897 に答える