命名空间
变体
操作

std::execution::just_error

来自 cppreference.com
< 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

[编辑] 示例