MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
promise< Res > 模板类 参考

Promise类模板 更多...

#include <promise.hpp>

Public 类型

using state_type = _INNER __future_base::state_base
 状态类型
using result_type = _INNER __future_base::basic_result<Res>
 结果类型
using ptr_type = _INNER __future_base::Ptr<result_type>
 结果指针类型

Public 成员函数

 promise ()
 默认构造函数
 promise (promise &&other) noexcept
 移动构造函数
promiseoperator= (promise &&other) noexcept
 移动赋值运算符
 promise (const promise &)=delete
 禁止拷贝构造
promiseoperator= (const promise &)=delete
 禁止拷贝赋值
 ~promise ()
 析构函数
void swap (promise &other) noexcept
 交换两个promise对象
future< Res > get_future ()
 获取关联的future对象
void set_value (Res &&value)
 设置结果值
void set_exception (exception_ptr exception)
 设置异常
void set_value_at_thread_exit (Res &&value)
 在线程退出时设置结果值
void set_exception_at_thread_exit (exception_ptr exception)
 在线程退出时设置异常

详细描述

template<typename Res>
class promise< Res >

Promise类模板

模板参数
Res结果类型

表示一个异步计算的结果提供者,与future配对使用。 可以将计算结果或异常设置到promise中,关联的future可以获取这些结果。

注解
结果类型不能是数组、函数,必须是可析构类型

在文件 promise.hpp32 行定义.

构造及析构函数说明

◆ promise() [1/2]

template<typename Res>
promise< Res >::promise ( )
inline

默认构造函数

创建新的promise对象,初始化共享状态和结果存储。

在文件 promise.hpp65 行定义.

引用了 _MSTL , 以及 make_shared().

被这些函数引用 operator=(), operator=(), promise< void >::operator=(), promise(), promise() , 以及 swap().

◆ promise() [2/2]

template<typename Res>
promise< Res >::promise ( promise< Res > && other)
inlinenoexcept

移动构造函数

参数
other要移动的promise对象

在文件 promise.hpp73 行定义.

引用了 _MSTL , 以及 promise().

◆ ~promise()

template<typename Res>
promise< Res >::~promise ( )
inline

析构函数

如果存在关联的future且promise未被设置结果,会自动设置broken_promise异常。

在文件 promise.hpp95 行定义.

引用了 _MSTL , 以及 move().

成员函数说明

◆ get_future()

template<typename Res>
future< Res > promise< Res >::get_future ( )
inline

获取关联的future对象

返回
future对象
异常
future_exception如果future已被获取

在文件 promise.hpp115 行定义.

◆ operator=()

template<typename Res>
promise & promise< Res >::operator= ( promise< Res > && other)
inlinenoexcept

移动赋值运算符

参数
other要移动的promise对象
返回
当前对象的引用

在文件 promise.hpp82 行定义.

引用了 _MSTL, move() , 以及 promise().

◆ set_exception()

template<typename Res>
void promise< Res >::set_exception ( exception_ptr exception)
inline

设置异常

参数
exception异常指针
异常
future_exception如果结果已被设置

在文件 promise.hpp133 行定义.

◆ set_exception_at_thread_exit()

template<typename Res>
void promise< Res >::set_exception_at_thread_exit ( exception_ptr exception)
inline

在线程退出时设置异常

参数
exception异常指针
异常
future_exception如果结果已被设置

在文件 promise.hpp152 行定义.

◆ set_value()

template<typename Res>
void promise< Res >::set_value ( Res && value)
inline

设置结果值

参数
value要设置的结果值
异常
future_exception如果结果已被设置

在文件 promise.hpp124 行定义.

引用了 _MSTL , 以及 forward().

◆ set_value_at_thread_exit()

template<typename Res>
void promise< Res >::set_value_at_thread_exit ( Res && value)
inline

在线程退出时设置结果值

参数
value要设置的结果值
异常
future_exception如果结果已被设置
注解
结果会在当前线程退出时设置,适用于需要保证某些资源在结果设置前有效的场景

在文件 promise.hpp143 行定义.

引用了 _MSTL , 以及 forward().

◆ swap()

template<typename Res>
void promise< Res >::swap ( promise< Res > & other)
inlinenoexcept

交换两个promise对象

参数
other要交换的promise对象

在文件 promise.hpp105 行定义.

引用了 promise().


该类的文档由以下文件生成: