std::future
提供: cppreference.com
![]() |
このページは、Google 翻訳を使って英語版から機械翻訳されました。
翻訳には誤りや奇妙な言い回しがあるかもしれません。文章の上にポインタをおくと、元の文章が見れます。誤りを修正して翻訳を改善する手助けをしてください。翻訳についての説明は、ここをクリックしてください。 |
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.
You can help to correct and verify the translation. Click here for instructions.
- 非同期操作(std::async、std::packaged_task、またはstd::promise介して作成された)その非同期操作の作成者に
std::future
オブジェクトを提供することができます.Original:An asynchronous operation (created via std::async, std::packaged_task, or std::promise) can provide astd::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 thestd::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'sstd::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.
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. (パブリックメンバ関数) | |
将来のオブジェクトを破棄します 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. (パブリックメンバ関数) | |
将来のオブジェクトを移動します 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. (パブリックメンバ関数) | |
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. (パブリックメンバ関数) | |
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. (パブリックメンバ関数) | |
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. (パブリックメンバ関数) | |
使用可能になるの結果を待ちます 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. (パブリックメンバ関数) | |
waits for the result, returns if it is not available for the specified timeout duration (パブリックメンバ関数) | |
指定された時点に達するまでそれが利用可能でない場合、結果を待って、返します 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. (パブリックメンバ関数) |
[編集] 例
このコードを実行します
#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'; }
出力:
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. (関数テンプレート) |
(C++11) |
非同期で設定された値(おそらく他の先物によって参照される)のを待ちます 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. (クラステンプレート) |