std::promise用来包装一个值将数据和future绑定起来,为获取线程函数的某个值获取便利,取值是间接通过promise内部提供的future来获取的。promise的主要目的是提供一个”Set”操作,和future的get()对应。
promise头文件如下
#include
using namespace std;
set_value函数
void set_value(_Ty&& _Val)
{ // store result
_MyPromise._Get_state_for_set()._Set_value(
_STD forward(_Val), false);
}
设置共享状态的值,此后promise的共享状态标志变为ready。
set_exception函数void set_exception(_XSTD exception_ptr _Exc)
{ // store result
_MyPromise._Get_state_for_set()._Set_exception(_Exc, false);
}
为promise设置异常,此后promise的共享状态标志变为ready。