struct is_receiver

Declaration

template <typename T, typename E = std::exception_ptr>
struct is_receiver { /* full declaration omitted */ };

Description

Receiving values from asynchronous computations is handled by the `Receiver` concept. A `Receiver` needs to be able to receive an error or be marked as being canceled. As such, the Receiver concept is defined by having the following two customization points defined, which form the completion-signal operations: * `pika::execution::experimental::set_stopped` * `pika::execution::experimental::set_error` Those two functions denote the completion-signal operations. The Receiver contract is as follows: * None of a Receiver's completion-signal operation shall be invoked before `pika::execution::experimental::start` has been called on the operation state object that was returned by connecting a Receiver to a sender `pika::execution::experimental::connect`. * Once `pika::execution::start` has been called on the operation state object, exactly one of the Receiver's completion-signal operation shall complete without an exception before the Receiver is destroyed Once one of the Receiver's completion-signal operation has been completed without throwing an exception, the Receiver contract has been satisfied. In other words: The asynchronous operation has been completed.

Declared at: libs/pika/execution_base/include/pika/execution_base/receiver.hpp:169