move-semantics

    1

    2答えて

    個々のコンテナクラス内に構造体のベクトルを格納したいという問題があります。 問題は、これらのベクトル用にこのコンテナを作成すると、ベクターがコピーされるためにリソースが浪費されることです。移動されません。一時的なリソースがcreate()によって返されるのはなぜですか?main関数のローカル変数master_dataに転送されませんか? Iが働くことになると想定 サンプルコードを以下に示す(および

    0

    1答えて

    今日私は、このコードが動作すると期待しているので、このコードは機能しません。 私の知っているL値のコピーコンストラクタは、R値の場合は移動コンストラクタを選択する必要があります。そうでなければ、実際には何もしませんが、R値にキャストするstd::moveの目的は何ですか。私はreturn objがコピーコンストラクタを呼び出すと予想していましたが、moveを呼び出します。 コピーはここでは役に立た

    1

    1答えて

    は、代入演算子(MAO)を移動、移動コンストラクタ(MC)と(整数メンバ変数によってここで示される簡略化のために)いくつかのリソースを保持するカスタムクラスXを考慮して、カスタム・スワップ機能:で class X { int i_; public: X(int i) : i_(i) { } X(X&& rhs) = default; // move construc

    1

    1答えて

    私はスタックがどのように動作し、変数が動かされたときに何が起こるかを理解していると思いますが、私はこの質問に対する答えを見つけることができません。私は説明しましょう: 新しいスコープが入力/作成されると、スタックの上に一定量のメモリが取得されます。スタックポインタはこのメモリを指します。スタックの現在のサイズを表します。スコープが残っていると、スタックポインタが元の位置に戻ることでメモリが解放され

    0

    1答えて

    私は移動セマンティクスを学びたいと思っています。私は移動がコピーより速い可能性が高いと読んでいます。しかし、私は、次のささいなコードのための全く逆を参照してください。 for (int i = 0; i < 100000000; ++i) { std::string a("Copy"); std::string b = a; } for (int i = 0; i < 1

    7

    1答えて

    私は、次のC++(11)のコードがあります:mutexがまだunlock()からの復帰後に開催された理由を私は理解できない何 #include <mutex> void unlock(std::unique_lock<std::mutex> && ulock) { } int main(void) { std::mutex m; std::unique_lock<

    8

    1答えて

    私はコピーを持って/クラスプロービング移動: #include <iostream> struct A { A() { std::cout << "Creating A" << std::endl; } ~A() noexcept { std::cout << "Deleting A" << std::endl;

    3

    1答えて

    アイテムを追加する関数を記述したいと思います。 addItemとaddItemsのそれぞれに移動バリアントがあります。後者は2つの入力イテレータを受け入れます。 1つのアイテムを追加するには、rvalue参照で署名をオーバーロードすることができます。しかし、私はどのように移動セマンティクスで動作するようにテンプレート関数をオーバーロードするのですか? void addItem(const shar

    6

    1答えて

    錆の関数std::mem::dropは、引数を移動してスコープ外に出て破棄します。同じような関数をC++で書こうとする私の試みは次のようになります: template <typename T, typename = std::enable_if_t<std::is_rvalue_reference<T &&>::value>> void drop(T &&x) { T(s

    1

    1答えて

    コインシデナが空である(ブロッキングまたはスローではなく)場合は、pop()操作でアイテムを返す必要があるロックフリーの同時データ構造のケースを考慮してください。データ構造は、潜在的に大きい可能性のあるユーザタイプTにテンプレート化されています(軽量でも、どちらの場合でも効率的なものにしたい)。 Tは少なくとも移動可能でなければならないが、コピー可能である必要はない。 私は関数のシグニチャがboo