What gives a std::future some shared state

2019-05-25 08:53发布

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?

标签: c++ future
1条回答
放荡不羁爱自由
2楼-- · 2019-05-25 09:42

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.

查看更多
登录 后发表回答