20 General utilities library [utilities]

20.14 Function objects [function.objects]

20.14.13 Function template bind_­front [func.bind.front]

template<class F, class... Args> constexpr unspecified bind_front(F&& f, Args&&... args);
In the text that follows:
  • g is a value of the result of a bind_­front invocation,
  • FD is the type decay_­t<F>,
  • fd is the target object of g ([func.def]) of type FD, direct-non-list-initialized with std​::​forward<F​>(f),
  • BoundArgs is a pack that denotes decay_­t<Args>...,
  • bound_­args is a pack of bound argument entities of g ([func.def]) of types BoundArgs..., direct-non-list-initialized with std​::​forward<Args>(args)..., respectively, and
  • call_­args is an argument pack used in a function call expression ([expr.call]) of g.
is_constructible_v<FD, F> &&
is_move_constructible_v<FD> &&
(is_constructible_v<BoundArgs, Args> && ...) &&
(is_move_constructible_v<BoundArgs> && ...)
is true.
Preconditions: FD meets the Cpp17MoveConstructible requirements.
For each in BoundArgs, if is an object type, meets the Cpp17MoveConstructible requirements.
Returns: A perfect forwarding call wrapper g with call pattern invoke(fd, bound_­args..., call_­args...).
Throws: Any exception thrown by the initialization of the state entities of g ([func.def]).