19 General utilities library [utilities]

19.14 Function objects [function.objects]

19.14.13 Function template bind_­front [func.bind_front]

template <class F, class... Args> 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 initialized with the initializer (std::forward<F>(​f)) ([dcl.init]),
  • BoundArgs is a pack that denotes std::unwrap_­ref_­decay_­t<Args>...,
  • bound_­args is a pack of bound argument entities of g ([func.def]) of types BoundArgs..., initialized with initializers (std::forward<Args>(args))..., respectively, and
  • call_­args is an argument pack used in a function call expression ([expr.call]) of g.
conjunction_v<is_constructible<FD, F>, is_move_constructible<FD>,
              is_constructible<BoundArgs, Args>..., is_move_constructible<BoundArgs>...>
shall be true.
Expects: FD shall meet the requirements of Cpp17MoveConstructible.
For each in BoundArgs, if is an object type, shall meet the requirements of Cpp17MoveConstructible.
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]).