Boost C++ 库

……世界上备受推崇和精心设计的 C++ 库项目之一。 Herb SutterAndrei AlexandrescuC++ Coding Standards

async_result - Boost C++ 函数库
PrevUpHomeNext

用于自定义发起函数行为的接口。

template<
    typename CompletionToken,
    typename... Signatures>
class async_result
类型

名称

描述

completion_handler_type

(旧版。) 针对特定签名的具体完成处理程序类型。

return_type

(旧版。) 发起函数的返回类型。

成员函数

名称

描述

async_result [构造函数]

(旧版。) 从给定的处理程序构造一个异步结果。

get

(旧版。) 获取要从发起函数返回的值。

initiate [静态]

发起将产生结果的异步操作,并获取要从发起函数返回的值。

async_result 特性是 异步操作 的发起函数内部使用的自定义点。该特性结合了

  • 描述异步操作将传递给完成处理程序的参数的完成签名(或签名);
  • 调用者提供的 完成令牌 类型;以及
  • 操作的内部实现。

该特性的特化必须满足 async_result 要求,并负责确定

  • 在异步操作结束时调用的具体完成处理程序类型;
  • 发起函数的返回类型;
  • 如何获取发起函数的返回值;以及
  • 如何以及何时通过调用提供的发起函数对象来启动操作。

此模板可以为用户定义的完成令牌类型进行特化。主模板假定 CompletionToken 已经是具体的完成处理程序。

备注

为了向后兼容,主模板实现了与 async_result 特性的旧形式相关的成员类型和函数。这些在下面的文档中被注释为“旧版”。用户对该特性的特化不必实现这些内容即可满足 async_result 要求

总的来说,异步操作的实现者应使用 async_initiate 函数,而不是直接使用 async_result 特性。

要求

Header: boost/asio/async_result.hpp

便捷头文件: boost/asio.hpp


PrevUpHomeNext