carb::cpp::is_nothrow_invocable_r

Defined in carb/cpp/TypeTraits.h

template<typename R, typename Func, typename ...TArgs>
struct is_nothrow_invocable_r : public detail::invocable_r_impl::invocable_nothrow_t

Check that invoking Func with the TArgs pack and converting it to R will not throw.

This is equivalent to the C++23 definition of is_nothrow_invocable_r. The function was originally added in C++17, but the specification was altered in C++23 to avoid undefined behavior.