**Description**

**Description**

*Pointer_to_binary_function* is a function object adaptor that allows a function pointer *Result (*f)(Arg1, Arg2)* to be treated as an Adaptable Binary Function . That is: if *F* is a *pointer_to_binary_function* that was initialized with an underlying function pointer

*f*of type

*Result (*)(Arg1, Arg2)*, then

*F(x, y)*calls the function

*f(x, y)*. The difference between

*f*and

*F*is that

*pointer_to_binary_function*is an Adaptable Binary Function,

*i.e.*it defines the nested

*typedef*s

*first_argument_type*,

*second_argument_type*, and

*result_type*.

Note that a function pointer of type *Result (*)(Arg1, Arg2)* is a perfectly good Binary Function object, and may be passed to an STL algorithm that expects an argument that is a Binary Function . The only reason for using the *pointer_to_binary_function* class is if you need to use an ordinary function in a context that requires an Adaptable Binary Function, *e.g.* as the argument of a function object adaptor.

Most of the time, you need not declare an object of type *pointer_to_binary_function* directly. It is almost always easier to construct one using the *ptr_fun* function.