c++ - 设置临时 std::future 的值
问题描述
我有一个返回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 的更好方法吗?
解决方案
我不确定您要达到什么效果,但是您可以使用 astd::promise
直接设置 a 的值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);
推荐阅读
- php - 如何捕获 sodium_crypto_box 的异常
- ios - 如何在 UserDefaults swift 中设置枚举数组
- cuda - 如何以原子方式在多个内存位置设置值?
- sharepoint - 使用来自子站点的 spd 工作流在根站点上创建文档集:禁止错误
- angular - 用一个按钮 angular 2 提交两个响应式表单
- swift - 计算一个特殊字符(非空格标记)在 Swift 中的字符串中出现的次数
- ruby-on-rails - ActiveRecord Rollback 跳过模型级错误作为响应
- java - Eclipse JDT 在项目中的 lombok 时生成错误的 ast
- javascript - Mapbox GL JS:显示纬度,经度位置
- reactjs - 重定向到页面的问题 - 我现在是新手