Установить значение временного std :: future - PullRequest
0 голосов
/ 06 мая 2020

У меня есть функция, которая возвращает std::pair<std::future<bool>,std::future_status>. В некоторых случаях я хочу, чтобы future.get () всегда возвращал true, и мне было интересно, есть ли способ сделать это с помощью файла git. В настоящее время я делаю что-то ужасное:

std::future<bool> tmp = std::async(std::launch::async,[]()->bool{return true;}); 
return std::make_pair(std::move(tmp), std::future_status::ready); 

Кто-нибудь знает лучший способ установить значение tmp равным true?

1 Ответ

0 голосов
/ 06 мая 2020

Я не уверен, какого эффекта вы пытаетесь достичь, но вы можете использовать std::promise, чтобы напрямую установить значение std::future:

#include<future>

std::promise<bool> tmpPromise; //default construct promise

std::future<bool> tmp = tmpPromise.get_future(); //get future associated with promise

tmpPromise.set_value(true); //set future value

return std::make_pair(tmp, std::future_status::ready);

...