std::execution::just_error
来自 cppreference.com
定义在头文件 <execution> 中 |
||
inline constexpr just_error_t just_error{}; struct just_error_t { /*unspecified*/ }; |
(自 C++26) (自定义点对象) |
|
调用签名 |
||
execution::sender auto just_error( auto&& error ); |
(自 C++26) | |
一个发送器工厂,它返回一个发送器,该发送器通过调用接收器的 set_error()
立即完成。
令 e 为由输入错误表示的子表达式,该输入错误将被注入并由接收器返回。表达式 just_error(e) 与 /*make-sender*/(just_error, /*product-type*/(e)) 表达式等效。
自定义点对象
名称 execution::just_error
表示一个自定义点对象,它是一个 const 函数对象,属于 字面量 semiregular
类类型。其类型的 cv 无限定版本是一个标记类型,表示为 execution::just_error_t
。
所有 execution::just_error_t
的实例都是相等的。调用不同 execution::just_error_t
类型实例在相同参数上的效果是等效的,无论表示该实例的表达式是左值还是右值,以及是否为 const 限定(但是,不保证可以调用 volatile 限定的实例)。因此,可以自由复制 execution::just_error
,并且可以互换使用其副本。
给定一组类型 Args...
,如果 std::declval<Args>()... 满足上面 execution::just_error
的参数要求,execution::just_error_t
模拟
- std::invocable<execution::just_error_t, Args...>,
- std::invocable<const execution::just_error_t, Args...>,
- std::invocable<execution::just_error_t&, Args...>, 以及
- std::invocable<const execution::just_error_t&, Args...>.
否则,execution::just_error_t
的任何函数调用运算符都不会参与重载解析。
[编辑] 说明
如果提供的错误是左值引用,则在返回的发送器内部会进行复制,并将对该副本的非 const 左值引用发送到接收器的 set_error。如果提供的错误是右值引用,则将其移动到返回的发送器中,并将对它的右值引用发送到接收器的 set_error
。
[编辑] 示例
本节内容不完整 原因:没有示例 |