A std::future
has a std::future::valid
method, which indicates whether the future object refers to some shared state. None of the constructors construct a future object that refers to shared state (except the move constructor, which can move the shared state from one future object to another). All the methods of the class (get
, wait
, wait_for
and wait_until
require the future object to have shared state as a precondition (they have undefined behaviour if valid() == false
). How then can a std::future
acquire some shared state and become useful?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You do not normally use a std::future
in isolation; you use it with a std::promise
. The std::promise
constructors set up some shared state. You can then use the std::promise::get_future()
method to get a std::future
that refers to that shared state.