What is std::promise?

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. … Read more