Разбираем, зачем нужны
std::async и
std::future, что именно «гарантирует» асинхронность в C++, и как на поведение влияет политика запуска
std::launch (в частности
std::launch::async и
std::launch::deferred). На примерах увидим, где работа реально идёт параллельно, где откладывается до
get()/
wait(), а также обсудим время жизни данных,
std::future<void> и типичные ошибки.