最終更新日時:
が更新

履歴 編集

function
<future>

std::promise::コンストラクタ(C++11)

promise();                                    // (1)

template <class Allocator>
promise(allocator_arg_t, const Allocator& a); // (2)

promise(promise&& rhs) noexcept;              // (3)
promise(const promise& rhs) = delete;         // (4)

promiseオブジェクトの構築

  • (1) : デフォルトコンストラクタ。promiseオブジェクトと共有状態の構築を行う。
  • (2) : アロケータを指定してpromiseオブジェクトと共有状態の構築を行う。
  • (3) : ムーブコンストラクタ。新たなpromiseオブジェクトを構築し、rhsから共有状態の所有権を移譲する。
  • (4) : コピーコンストラクタ。コピー禁止。

事後条件

  • (3) : rhsが共有状態を持っていないこと

#include <memory>
#include <future>

int main()
{
  // デフォルト構築
  {
    std::promise<int> p;
  }

  // アロケータを指定して構築
  {
    std::promise<int> p = {
        std::allocator_arg,
        std::allocator<std::promise<int>>()
    };
  }

  // ムーブ構築
  {
    std::promise<int> p1;
    std::promise<int> p2 = std::move(p1);
  }
}

出力

バージョン

言語

  • C++11

処理系

参照