carb::cpp17::is_nothrow_invocable_r

Defined in carb/cpp17/TypeTraits.h

Inheritance Relationships

Base Type

  • public detail::invocable_r_impl::invocable_nothrow_t< void, R, Func, TArgs... >

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

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.