Я хорошо знаком с C++11 std::thread
, std::async
и компоненты std::future
(например, см. this answer), которые прямолинейны.
Однако я не совсем понимаю, что такое std::promise
, что он делает и в каких ситуациях его лучше всего использовать. Сам стандартный документ не содержит большого количества информации, кроме синопсиса класса, как и just::thread.
Может ли кто-нибудь привести краткий пример ситуации, когда требуется std::promise
и где это наиболее идиоматичное решение?