in include/unifex/stop_when.hpp [219:242]
void deliver_result() noexcept {
UNIFEX_TRY {
std::visit(
[this](auto&& tuple) {
if constexpr (
std::tuple_size_v<
std::remove_reference_t<decltype(tuple)>> != 0) {
std::apply(
[&](auto set_xxx, auto&&... args) {
set_xxx(
std::move(receiver_),
static_cast<decltype(args)>(args)...);
},
static_cast<decltype(tuple)>(tuple));
} else {
// Should be unreachable
std::terminate();
}
},
std::move(result_));
} UNIFEX_CATCH (...) {
unifex::set_error(std::move(receiver_), std::current_exception());
}
}