Что такое std::promise?

Я хорошо знаком с C++11 std::thread, std::asyncи компоненты std::future(например, см. this answer), которые прямолинейны.

Однако я не совсем понимаю, что такое std::promise, что он делает и в каких ситуациях его лучше всего использовать. Сам стандартный документ не содержит большого количества информации, кроме синопсиса класса, как и just::thread.

Может ли кто-нибудь привести краткий пример ситуации, когда требуется std::promiseи где это наиболее идиоматичное решение?

367
задан AStopher 10 May 2018 в 09:58
поделиться