We recommend using Visual Studio 2017

pointer_to_binary_function Class


The latest version of this topic can be found at pointer_to_binary_function Class.

Converts a binary function pointer into an adaptable binary function.

template <class Arg1, class Arg2, class Result>
class pointer_to_binary_function
 : public binary_function <Arg1, Arg2, Result>  
 explicit pointer_to_binary_function(
    Result (* _pfunc)(Arg1, Arg2));

    Result operator()(
    Arg1 left,
    Arg2 right) const;



The binary function to be converted.

The left object that the *_pfunc is called on.

The right object that the *_pfunc is called on.

The template class stores a copy of _pfunc. It defines its member function operator() as returning (* _pfunc)(_ Left, _ Right).

A binary function pointer is a function object and may be passed to any Standard Template Library algorithm that is expecting a binary function as a parameter, but it is not adaptable. To use it with an adaptor, such as binding a value to it or using it with a negator, it must be supplied with the nested types first_argument_type, second_argument_type, and result_type that make such an adaptation possible. The conversion by pointer_to_binary_function allows the function adaptors to work with binary function pointers.

The constructor of pointer_to_binary_function is rarely used directly. See the helper function ptr_fun for an example of how to declare and use the pointer_to_binary_function adaptor predicate.

Header: <functional>

Namespace: std

Standard Template Library