reading article on async and future:
void fun() {
std::async(std::launch::async, []{ f(); }); // temporary's dtor waits for f()
std::async(std::launch::async, []{ g(); }); // does not start until f() completes
}
got an impression that if fun is called it will block until g() is executed. Please tall me that I am wrong and there is some reasonable tasks pool behind std::async logic?