C++ 0xでは、一部のクラスをコピーできますが、移動できないことは合法ですか?私はサイズ変更の異種クラスを実装することを検討しています。コピーが必要なクラスや移動が必要なクラスがあれば、それを処理できるかどうかはわかりません。コピーするが、移動しない
5
A
答えて
5
はい、それはコピー可能が、移動できないようにクラスのために法的です:
class MyClass {
public:
/* Copyable... */
MyClass(const MyClass&);
MyClass& operator= (const MyClass&);
/* ... but not movable. */
MyClass(MyClass&&) = delete;
MyClass& operator= (MyClass&&) = delete;
};
しかし、私は誰もがこれをしたいと思う理由として正当な理由を考えることはできません。 C++コーダー(私のような)を知っていても、これが起こるかもしれないと予想するべきだと思います。
好奇心を持たずに、クラスがコピー可能であっても移動できない場合、どのコードが壊れてしまうのですか?
0
移動コンストラクタをprotected/privateにすることは、そのクラスのオブジェクトを移動する能力を制限する方法であると確信しています。あなたはそれをテンプレートで期待できますか?私はそうは思わない。あなたはその種のチェックのためにstd::enable_if
が必要です。
関連する問題
- 1. 可能なファイルをコピー/移動する
- 2. 移動セマンティクス遅くコピーし、私が移動し、テストのセマンティクスを比較する小さなテストを書い++
- 3. 交換なしでファイルをコピー/移動する方法
- 4. IDでセルをコピー/移動する
- 5. C++オブジェクトインスタンスの移動/コピーについて
- 6. リモートファイルの移動とコピー
- 7. PHP 'コピー'が動作しない
- 8. デフォルトとポインタの移動がポインタ移動で機能しない
- 9. マイクロサービスに移動するか移動しない
- 10. JQuery Tree Traversal - ツリーを上に移動するが下に移動しない
- 11. テキストフィールドからテキストフィールドに直接移動するとUITableViewが移動しない
- 12. TortoiseSVN - 移動した作業コピーが認識されなくなった
- 13. Knex.js移行で既存のデータを移動/コピーする
- 14. 反復でコピーできない構造体を移動
- 15. コピー/移動またはコピーエリジョンを使用しない値を返す関数
- 16. React Jsがsrcに移動しない../
- 17. ブートストラップグリッドがコンテンツを移動しない
- 18. Djangoの移行が動作しない
- 19. アクティビティ遷移が動作しない
- 20. 私のpygameスプライトが移動しない
- 21. Vue2遷移モードが動作しない
- 22. CSSの移行が動作しない
- 23. CSSホバーオフ遷移が動作しない
- 24. 障害が移動しない
- 25. カスタムリストビューonClickがタブフラグメントページに移動しない
- 26. クリックすると 'p'が 'div'に移動します。 - アニメーションが動作しない
- 27. タイムスタンプを保存したままファイルを移動/コピーするネットライブラリ
- 28. objective-cでファイルをコピーして移動する
- 29. perlの新しいディレクトリにコピーして移動するファイルのリストを使用
- 30. 移動行、いくつかの条件を満たして(コピー)
サイズが変わる異機種スタックです。私は最小限の努力でC++ 03との互換性を望むかと思いますが、私は両方を許すべきです。 – Puppy
ええと...具体的には、コピー可能な、動かない(私はそれが合理的な用語だと思いますか?)オブジェクトで壊れているコードには何ですか?私は以前これを見たことがないので、私は興味があります。 – templatetypedef
あなたが言ったことはいいことです。何らかの理由で、移動したオブジェクトが破壊される必要がないことを心に留めました。うわー。 – Puppy