最終更新日時:
が更新

履歴 編集

function
<future>

std::packaged_task::get_future(C++11)

future<R> get_future();

概要

結果取得のためのfutureオブジェクトを取得する

戻り値

*thisと同じ共有状態を持つfuture<R>オブジェクトを返す

例外

この関数は、以下のerror conditionを持つfuture_error例外オブジェクトを送出する可能性がある:

  • future_already_retrieved : すでにこの関数によって共有状態が作られている
  • no_state*thisが共有状態を持っていない(デフォルト構築されたpackaged_task、ムーブされたあとなどに起こりうる)

#include <iostream>
#include <future>

int calc() { return 3; }

int main()
{
  std::packaged_task<int()> task(calc); // calc()を非同期タスクとして登録
  std::future<int> f = task.get_future(); // 結果値取得のためのfutureを取得

  // タスクを実行
  task();

  // 結果を取得
  int result = f.get();
  std::cout << result << std::endl;
}

出力

3

バージョン

言語

  • C++11

処理系

参照