Binder1st is a function object adaptor: it is used to transform
an adaptable binary function into an adaptable unary function.
Specifically, if f is an object of class
binder1st<AdaptableBinaryFunction>, then f(x) returns
F(c, x), where F is an object of class AdaptableBinaryFunction
and where c is a constant. Both F and c are passed as arguments to
binder1st's constructor. [1]
The easiest way to create a binder1st is not to call the constructor
explicitly, but instead to use the helper function bind1st.
These members are not defined in the
Adaptable Unary Function
requirements, but are specific to
binder1st.
Member
Description
binder1st(const AdaptableBinaryFunction& F,
AdaptableBinaryFunction::first_argument_type c)
The constructor. Creates a binder1st such that calling it with
the argument x (where x is of type
AdaptableBinaryFunction::second_argument_type) corresponds to the
call F(c, x).
If F is an object of type AdaptableBinaryFunction,
then bind1st(F, c) is equivalent to
binder1st<AdaptableBinaryFunction>(F, c), but is more convenient.
The type T must be convertible to
AdaptableBinaryFunction::first_argument_type. This is a global
function, not a member function.
Notes
[1]
Intuitively, you can think of this operation as "binding" the
first argument of a binary function to a constant, thus yielding
a unary function. This is a special case of a closure.