What gives a std::future some shared state

2019-05-25 09:22发布

问题:

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.



标签: c++ future