Один из способов получить std::future - через std::async:
int foo()
{
return 42;
}
...
std::future<int> x = std::async(foo);
В этом примере, как распределяется хранилище для x асинхронного состояния, и какой поток (если задействовано более одного потока) отвечает за выполнение распределения? Кроме того, имеет ли клиент std::async какой-либо контроль над распределением?
В контексте я вижу, что один из конструкторов std::promise может получить распределитель, но мне это не понятно, если оно можно настроить распределение std::future на уровне std::async.