# Binder Classes

## Detailed Description

Binders turn functions/functors with two arguments into functors with a single argument, storing an argument to be applied later. For example, a variable `B` of type `binder1st` is constructed from a functor `f` and an argument `x`. Later, B's `operator()` is called with a single argument `y`. The return value is the value of `f(x,y)`. `B` can be "called" with various arguments (y1, y2, ...) and will in turn call `f(x,y1)`, `f(x,y2)`, ...

The function `bind1st` is provided to save some typing. It takes the function and an argument as parameters, and returns an instance of `binder1st`.

The type `binder2nd` and its creator function `bind2nd` do the same thing, but the stored argument is passed as the second parameter instead of the first, e.g., `bind2nd`(std::minus<float>,1.3) will create a functor whose `operator()` accepts a floating-point number, subtracts 1.3 from it, and returns the result. (If `bind1st` had been used, the functor would perform "1.3 - x" instead.

Creator-wrapper functions like `bind1st` are intended to be used in calling algorithms. Their return values will be temporary objects. (The goal is to not require you to type names like `std::binder1st<std::plus<int>>` for declaring a variable to hold the return value from `bind1st(std::plus<int>,5)`.

These become more useful when combined with the composition functions.

## Classes

- class std::binder1st< _Operation >
    One of the binder functors. More...
- class std::binder2nd< _Operation >
    One of the binder functors. More...

## Functions

- template<class _Operation, class _Tp> binder1st< _Operation > std::bind1st (const _Operation &__fn, const _Tp &__x)
- template<class _Operation, class _Tp> binder2nd< _Operation > std::bind2nd (const _Operation &__fn, const _Tp &__x)

## Function Documentation

template<class _Operation, class _Tp>

binder1st<_Operation> std::bind1st | ( | const _Operation & | __fn,
|  | const _Tp & | __x |
| ) |  |  | `[inline]`

One of the binder functors.

Definition at line 418 of file stl_function.h.

template<class _Operation, class _Tp>

binder2nd<_Operation> std::bind2nd | ( | const _Operation & | __fn,
|  | const _Tp & | __x |
| ) |  |  | `[inline]`

One of the binder functors.

Definition at line 452 of file stl_function.h.