I’m fairly familiar with C++11’s std::thread
, std::async
and std::future
components (e.g. see this answer), which are straight-forward.
However, I cannot quite grasp what std::promise
is, what it does and in which situations it is best used. The standard document itself doesn’t contain a whole lot of information beyond its class synopsis, and neither does std::thread.
Could someone please give a brief, succinct example of a situation where an std::promise
is needed and where it is the most idiomatic solution?