[func.bind.front] (original) (raw)
20 General utilities library [utilities]
20.14 Function objects [function.objects]
20.14.14 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.
Mandates: 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 gwith call pattern invoke(fd, bound_args..., call_args...).
Throws: Any exception thrown by the initialization of the state entities of g ([func.def]).