問題タブ [move-constructor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 一時的な T は、パラメーターとして、C++11 で T(const T&) または T(T&&) を呼び出す必要がありますか?
したがって、最初にコーディングします。
次に、C++11 機能をオンにして cygwin + gcc 4.8.2 から出力します。
私がよく理解していないのは、x41 と x51 の行です。x41 の場合、関数呼び出しから返された一時的に移動コンストラクタまたはコピーを呼び出す必要がありますか? x51についても同じ質問です。
2 番目の質問は、出力を見ると、x41 と x51 の構成では、定義されたコンストラクターが呼び出されませんでしたが、オブジェクトはメモリ内に常駐しているため、明らかに作成されているということです。これはどうやってできるの?
c++ - std::string を例外に埋め込まないという規則は、ムーブ コンストラクターにも当てはまりますか?
少し前に、型のフィールドを持つ例外クラスを作成すべきではないと聞いたことがありますstd::string
。それがブーストのウェブサイトが言っていることです。その根拠は、std::string
メモリ割り当てが失敗した場合にコピー コンストラクターが例外をスローする可能性があり、現在処理されている例外がキャッチされる前に例外がスローされると、プログラムが終了することです。
しかし、それはムーブ コンストラクターの世界でも通用するのでしょうか? 例外をスローするときに、コピー コンストラクターの代わりにムーブ コンストラクターを使用しませんか? C++11 ではメモリ割り当てが行われず、例外が発生する可能性がなく、std::string
現在例外クラスで完全に問題がないことを正しく理解していますか?
c++ - Clang ASTツールを使用してコードベースでムーブコンストラクタを見つける方法は?
この質問からのコメントのフォローアップ: how can I find move constructors in C++ codebase using Clang AST tools? (定義/宣言のみを検索)
c++ - 配列にunique_ptrを使用する方法
クラスがあります
なぜこれが起こるのですか?
これはムーブ コンストラクターに関するものだと思いますが (デストラクタのために自動的に作成することはできません)、なぜここでムーブ コンストラクターが必要なのですか?
そして、次の違いは何ですか: