タグ付けされた質問 「pod」

4
デフォルトのmove-assignment / move-constructorがないのはなぜですか?
私は単純なプログラマーです。私のクラスメンバーの変数は、ほとんどの場合、PODタイプとSTLコンテナーで構成されています。このため、代入演算子やコピーコンストラクタを記述する必要はほとんどありません。これらはデフォルトで実装されているからです。 これに加えて、std::move移動できないオブジェクトで使用する場合は、代入演算子を使用するため、std::move完全に安全です。 私は単純なプログラマーなので、コンパイラーが " this->member1_ = std::move(other.member1_);..." として実装するだけなので、作成するすべてのクラスに移動コンストラクター/割り当て演算子を追加せずに、移動機能を利用したいと思います。 しかし、そうではありません(少なくともVisual 2010ではそうではありません)。これには特別な理由がありますか? さらに重要なことには; これを回避する方法はありますか? 更新: GManNickGの答えを見ると、GManNickGはこのための優れたマクロを提供しています。また、知らない場合は、移動セマンティクスを実装すれば、メンバーのスワップ関数を削除できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.