20 General utilities library [utilities]

20.14 Function objects [function.objects]

20.14.5 invoke functions [func.invoke]

template<class F, class... Args> constexpr invoke_result_t<F, Args...> invoke(F&& f, Args&&... args) noexcept(is_nothrow_invocable_v<F, Args...>);
Constraints: is_­invocable_­v<F, Args...> is true.
Returns: INVOKE(std​::​forward<F>(f), std​::​forward<Args>(args)...).
template<class R, class F, class... Args> constexpr R invoke_r(F&& f, Args&&... args) noexcept(is_nothrow_invocable_r_v<R, F, Args...>);
Constraints: is_­invocable_­r_­v<R, F, Args...> is true.
Returns: INVOKE<R>(std​::​forward<F>(f), std​::​forward<Args>(args)...) ([func.require]).