22 General utilities library [utilities] (original) (raw)

22.10 Function objects [function.objects]

22.10.13 Function template not_fn [func.not.fn]

template<class F> constexpr _unspecified_ not_fn(F&& f);

In the text that follows:

Mandates: is_constructible_v<FD, F> && is_move_constructible_v<FD>is true.

Returns: A perfect forwarding call wrapper ([func.require]) gwith call pattern !invoke(fd, call_args...).

Throws: Any exception thrown by the initialization of fd.

template<auto f> constexpr _unspecified_ not_fn() noexcept;

In the text that follows:

Mandates: If is_pointer_v<F> || is_member_pointer_v<F> is true, then f != nullptr is true.

Returns: A perfect forwarding call wrapper ([func.require]) g that does not have state entities, and has the call pattern !invoke(f, call_args...).