std :: async не создаст новый поток, если возвращаемое значение не сохранено

Считай, у меня есть ламбаfoo который просто делает что-то и не нужно ничего возвращать. Когда я делаю это:

std::future<T> handle = std::async(std::launch::async, foo, arg1, arg2);

Все работает нормально, и ламба будет порождена в новом потоке. Однако, когда я не хранюstd::future которыйstd::async возвращает, foo будет запущен в главном потоке и заблокирует его.

std::async(std::launch::async, foo, arg1, arg2);

Что мне здесь не хватает?

Ответы на вопрос(3)

Ваш ответ на вопрос