Per [futures.async]/3 bullet 1 стандарта C++, когда функция f
передается в std::async
с помощью политики запуска std::launch::async
, f
будет запускаться "как если бы в новом потоке исполнения ".
Учитывая, что f
может что-либо делать, включая цикл бесконечно и блокировать навсегда, как реализация может предложить поведение f
работающего в своем потоке, фактически не запуская его в своем потоке? То есть, как реализовать в реализации возможность использовать "как будто" комнату для маневра, предоставляемую стандартом?