命名空间
变体
操作

std::execution::just_error

来自 cppreference.cn
< cpp‎ | execution
 
 
 
定义于头文件 <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 建模

否则,execution::just_error_t 的任何函数调用运算符都不参与重载解析。

[编辑] 注释

如果提供的错误是左值引用,则在返回的发送器内部创建一个副本,并将对该副本的非 const 左值引用发送到接收器的 set_error。如果提供的值是右值引用,则将其移动到返回的发送器中,并将对其的右值引用发送到接收器的 set_error

[编辑] 示例