20
General utilities library
[utilities]
20.14
Function objects
[function.objects]
20.14.13
Function template
not_fn
[func.not.fn]
🔗
template
<
class
F
>
constexpr
unspecified
not_fn
(
F
&
&
f
)
;
1
#
In the text that follows:
(1.1)
g
is a value of the result of a
not_fn
invocation,
(1.2)
FD
is the type
decay_t
<
F
>
,
(1.3)
fd
is the target object of
g
(
[func.
def]
) of type
FD
, direct-non-list-initialized with
std
::
forward
<
F
>
(
f
)
,
(1.4)
call_args
is an argument pack used in a function call expression (
[expr.
call]
) of
g
.
2
#
Mandates
:
is_constructible_v
<
FD, F
>
&
&
is_move_constructible_v
<
FD
>
is
true
.
3
#
Preconditions
:
FD
meets the
Cpp17MoveConstructible
requirements
.
4
#
Returns
: A perfect forwarding call wrapper
g
with call pattern
!
invoke
(
fd, call_args
.
.
.
)
.
5
#
Throws
: Any exception thrown by the initialization of
fd
.