cplusplus.com cplusplus.com
cplusplus.com   C++ : Reference : Miscellaneous : functional : pointer_to_binary_function
  Search:
- -
C++
Information
Documentation
Reference
Articles
Sourcecode
Forums
Reference
C Library
IOstream Library
Strings library
STL Containers
STL Algorithms
Miscellaneous
Miscellaneous
functional
iterator
memory
utility
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_funct...
· pointer_to_unary_function
· unary_negate

-

pointer_to_binary_function class template
template <class Arg1, class Arg2, class Result> class pointer_to_binary_function;
<functional>

Generate binary function object class from pointer

Generates a binary function object class from a pointer to a function that takes two arguments (of type Arg1 and Arg2) and returns a value (of type Result).

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

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

template <class Arg1, class Arg2, class Result>
  class pointer_to_binary_function : public binary_function <Arg1,Arg2,Result>
{
protected:
  Result(*pfunc)(Arg1,Arg2);
public:
  explicit pointer_to_binary_function ( Result (*f)(Arg1,Arg2) ) : pfunc (f) {}
  Result operator() (Arg1 x, Arg2 y) const
    { return pfunc(x,y); }
};

Members

constructor
Constructs a binary function object class from pointer to a function that takes two arguments of types Arg1 and Arg2, and returns a value of type Result.
operator()
Member function taking two parameters, passing them to the function pointed by the pointer used at construction, and forwarding the return value obtained as its own return value.

Example

// pointer_to_binary_function example
#include <iostream>
#include <functional>
#include <algorithm>
#include <cmath>
using namespace std;

int main () {
  pointer_to_binary_function <double,double,double> PowObject (pow);
  double numbers[] = {1.0, 2.0, 3.0, 4.0, 5.0};
  double squares[5];
  transform (numbers, numbers+5, squares, bind2nd(PowObject,2) );
  for (int i=0; i<5; i++)
    cout << squares[i] << " ";
  cout << endl;
  return 0;
}

Possible output:


1 4 9 16 25

See also

ptr_fun Convert function pointer to function object (function template)
pointer_to_unary_function Generate unary function object class from pointer (class template)
unary_function Unary function object base class (class template)

Home page | Privacy policy
© cplusplus.com, 2000-2008 - All rights reserved - v2.2
Spotted an error? contact us