簡體   English   中英

設置臨時 std::future 的值

[英]Set value of temporary std::future

我有一個 function ,它返回一個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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM