cuda::experimental::stf::sump::fwd_t#

struct fwd_t#

The identity element of | and the forwarding primitive: the error leaves the sink unhandled and continues on its native channel.

On the exception channel it re-throws the in-flight exception from inside the catch. Its answer type is nullval, so it never has to produce a value; being non-noexcept is how it forwards, handing the exception to the next | arm or letting it propagate. On the code channel no exception is active, so it answers itself, a fwd_t value: the << chain yields the status unchanged for the caller to propagate, and records it as forwarded.

Public Functions

template<class _Fn>
inline nullval on_thrown(
const ::std::exception*,
const ::cuda::std::source_location,
_Fn&
) const#
template<class _Status, class _Fn>
inline fwd_t on_returned(
const _Status,
const ::cuda::std::source_location,
_Fn&
) const noexcept#

The code-channel hook: answers fwd_t, so the status is yielded unchanged.