### execution::set_error

A customisation point that delivers an error notification to a receiver.

    constexpr unspecified set_error = unspecified;

The name `execution::set_error` denotes a customisation point object. The expression `execution::set_error(R, E)` for some subexpressions `R` and `E` are expression-equivalent to:

- `R.set_error(E)`, if that expression is valid. If the function selected does not send the error `E` to the receiver `R`'s error channel, the program is ill-formed with no diagnostic required.
- Otherwise, `set_error(R, E)`, if that expression is valid, with overload resolution performed in a context that includes the declaration `void set_error();` and that does not include a declaration of `execution::set_error`. If the function selected by overload resolution does not send the error `E` to the receiver `R`'s error channel, the program is ill-formed with no diagnostic required.
- Otherwise, `execution::set_error(R, E)` is ill-formed.

##### Requirements

Header: `asio/execution/set_error.hpp`

Convenience header: `asio/execution.hpp`