Reference
C Library
IOstream Library
Strings library
STL Containers
STL Algorithms
Miscellaneous
Miscellaneous
complex
exception
functional
iterator
limits
locale
memory
new
numeric
stdexcept
typeinfo
utility
valarray
functional
binary_function
unary_function
operator classes:
divides
equal_to
greater
greater_equal
less
less_equal
logical_and
logical_not
logical_or
minus
modulus
multiplies
negate
not_equal_to
plus
adaptor functions:
bind1st
bind2nd
mem_fun
mem_fun_ref
not1
not2
ptr_fun
types:
binary_negate
binder1st
binder2nd
const_mem_fun1_ref_t
const_mem_fun1_t
const_mem_fun_ref_t
const_mem_fun_t
mem_fun1_ref_t
mem_fun1_t
mem_fun_ref_t
mem_fun_t
pointer_to_binary_function
pointer_to_unary_function
unary_negate


binder1st

class template
<functional>
template <class Operation> class binder1st;

Generate function object class with 1st parameter bound

Generates an unary function object class from the binary object class Operation by binding its first parameter to a fixed value.

binder1st is generally used as a type. The function bind1st (also defined in header <functional>) can be used to directly construct an object of this type.

binder1st is constructed using a binary function object as argument. A copy of this object is used by its member operator() to generate a result from its parameter and the fixed value set on construction.

This class is derived from unary_function and is typically defined as:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
template <class Operation> class binder1st
  : public unary_function <typename Operation::second_argument_type,
                           typename Operation::result_type>
{
protected:
  Operation op;
  typename Operation::first_argument_type value;
public:
  binder1st ( const Operation& x,
              const typename Operation::first_argument_type& y) : op (x), value(y) {}
  typename Operation::result_type
    operator() (const typename Operation::second_argument_type& x) const
    { return op(value,x); }
};


binder1st class is specifically designed to bind function objects (operations) derived from binary_function (it requires member first_argument_type and second_argument_type).

Members

constructor
Constructs an unary function object class from a binary function object by binding its first argument to a value.
operator()
Member function taking a single parameter and returning the result of calling the binary function object used at construction with its first argument bound to a specific value.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// binder1st example
#include <iostream>
#include <functional>
#include <algorithm>
using namespace std;
int main () {
  binder1st < equal_to<int> > equal_to_10 (equal_to<int>(),10);
  int numbers[] = {10,20,30,40,50,10};
  int cx;
  cx = count_if (numbers,numbers+6,equal_to_10);
  cout << "There are " << cx << " elements equal to 10.\n";
  return 0;
}


Output:

There are 2 elements equal to 10.

See also