名前空間
変種
操作

std::future

提供: cppreference.com
< cpp‎ | thread


 
 
スレッドのサポートライブラリ
スレッド
Original:
Threads
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
thread(C++11)
this_thread空間
Original:
this_thread namespace
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
get_id(C++11)
yield(C++11)
sleep_for(C++11)
sleep_until(C++11)
相互排除
Original:
Mutual exclusion
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
mutex(C++11)
timed_mutex(C++11)
汎用のロック管理
Original:
Generic lock management
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
lock_guard(C++11)
unique_lock(C++11)
defer_lock_t
try_to_lock_t
adopt_lock_t
(C++11)
(C++11)
(C++11)
lock(C++11)
try_lock(C++11)
defer_lock
try_to_lock
adopt_lock
(C++11)
(C++11)
(C++11)
条件変数
Original:
Condition variables
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
condition_variable(C++11)
condition_variable_any(C++11)
notify_all_at_thread_exit(C++11)
cv_status(C++11)
先物
Original:
Futures
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
promise(C++11)
future(C++11)
shared_future(C++11)
packaged_task(C++11)
async(C++11)
launch(C++11)
future_status(C++11)
future_error(C++11)
future_category(C++11)
future_errc(C++11)
 
std::future
future::future
future::~future
future::operator=
future::share
結果を取得する
Original:
Getting the result
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
future::get
状態
Original:
State
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
future::valid
future::wait
future::wait_for
future::wait_until
 
Defined in header <future>
template< class T > class future;
(1) (C++11およびそれ以降)
template< class T > class future<T&>;
(2) (C++11およびそれ以降)
template<>          class future<void>;
(3) (C++11およびそれ以降)
クラステンプレートstd::futureは、非同期操作の結果にアクセスするためのメカニズムを提供します
Original:
The class template std::future provides a mechanism to access the result of asynchronous operations:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • 非同期操作(std::asyncstd::packaged_task、またはstd::promise介して作成された)その非同期操作の作成者にstd::futureオブジェクトを提供することができます.
    Original:
    An asynchronous operation (created via std::async, std::packaged_task, or std::promise) can provide a std::future object to the creator of that asynchronous operation.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • 非同期操作の作成者は、次に照会するのを待つか、std::futureから値を抽出するためにさまざまな方法を使用することができます。非同期操作がまだ値が提供されていない場合、これらのメソッドはブロックすることがあります.
    Original:
    The creator of the asynchronous operation can then use a variety of methods to query, wait for, or extract a value from the std::future. These methods may block if the asynchronous operation has not yet provided a value.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • 非同期操作が作成者に結果を送信する準備ができたら、それは共有状態を変更することによって行うことができます(例えばstd::promise::set_value)クリエイターのstd::futureにリンクされている.
    Original:
    When the asynchronous operation is ready to send a result to the creator, it can do so by modifying shared state (e.g. std::promise::set_value) that is linked to the creator's std::future.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
std::future参照は他の非同期戻りオブジェクト(std::shared_futureとしてではなく)と共有されていない状態を共有したことに注意してください.
Original:
Note that std::future references shared state that is not shared with any other asynchronous return objects (as opposed to std::shared_future).
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

目次

[編集] メンバ関数

将来のオブジェクトを作成します
Original:
constructs the future object
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(パブリックメンバ関数) [edit]
将来のオブジェクトを破棄します
Original:
destructs the future object
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(パブリックメンバ関数) [edit]
将来のオブジェクトを移動します
Original:
moves the future object
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(パブリックメンバ関数) [edit]
shared_futureに関連付けられている結果を参照*thisを返します
Original:
returns a shared_future referring to the result associated to *this
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(パブリックメンバ関数) [edit]
結果を取得する
Original:
Getting the result
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
結果を返します
Original:
returns the result
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(パブリックメンバ関数) [edit]
状態
Original:
State
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
将来は約束で状態を共有しているかどうかをチェックします
Original:
checks if the future has shared state with a promise
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(パブリックメンバ関数) [edit]
使用可能になるの結果を待ちます
Original:
waits for the result to become available
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(パブリックメンバ関数) [edit]
waits for the result, returns if it is not available for the specified timeout duration
(パブリックメンバ関数) [edit]
指定された時点に達するまでそれが利用可能でない場合、結果を待って、返します
Original:
waits for the result, returns if it is not available until specified time point has been reached
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(パブリックメンバ関数) [edit]

[編集]

#include <iostream>
#include <future>
#include <thread>
 
int main()
{
    // future from a packaged_task
    std::packaged_task<int()> task([](){ return 7; }); // wrap the function
    std::future<int> f1 = task.get_future();  // get a future
    std::thread(std::move(task)).detach(); // launch on a thread
 
    // future from an async()
    std::future<int> f2 = std::async(std::launch::async, [](){ return 8; });
 
    // future from a promise
    std::promise<int> p;
    std::future<int> f3 = p.get_future();
    std::thread( [](std::promise<int>& p){ p.set_value(9); }, 
                 std::ref(p) ).detach();
 
    std::cout << "Waiting...";
    f1.wait();
    f2.wait();
    f3.wait();
    std::cout << "Done!\nResults are: "
              << f1.get() << ' ' << f2.get() << ' ' << f3.get() << '\n';
}

Output:

Waiting...Done!
Results are: 7 8 9

[編集] も参照してください

(C++11)
非同期関数を実行します(潜在的に新しいスレッドで)、その結果を保持するstd::futureを返します
Original:
runs a function asynchronously (potentially in a new thread) and returns a std::future that will hold the result
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(関数テンプレート) [edit]
非同期で設定された値(おそらく他の先物によって参照される)のを待ちます
Original:
waits for a value (possibly referenced by other futures) that is set asynchronously
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(クラステンプレート) [edit]