我有一个函数,返回一个 std::pair<std::future<bool>,std::future_status>
. 在某些情况下,我希望future.get()总是返回true,我想知道是否有一个合法的方法来实现它。目前我正在做一些可怕的事情。
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?
我不知道你想达到什么效果,但你可以使用一个 "未来 "函数。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);