cuda::experimental::stf::sump::if_isa#

template<class ..._Es, class _P>
auto cuda::experimental::stf::sump::if_isa(
_P &&__p
)#

Restricts a policy to exceptions matching any of E1, E2, ...: if_isa<E...>(p) runs p’s exception path when the active exception matches any listed type by catch-clause rules (same or publicly derived), and otherwise forwards: by a returned claim when it is an arm of | or *, by rethrowing when invoked directly.

The listed types may be anything catchable – std::exception derivatives, user structs, even int. Native C++ has no multi-type catch clause; this adds that expressivity. A matching exception that does not derive from std::exception reaches p’s hook as a null pointer. A pack where one type claims another (identical or base-of) is rejected – the claimed entry would be dead.