Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Illustrates how to use the binary_function structure in the Standard Template Library (STL) in Visual C++.
template<class _A1, class _A2, class _R>
struct binary_function
{
typedef _A1 first_argument_type;
typedef _A2 second_argument_type;
typedef _R result_type;
};
Remarks
Note
The class/parameter names in the prototype do not match the version in the header file. Some have been modified to improve readability.
The binary_function<A,B,C> class is used as a base class to allow the user to easily define binary operator functions that take data types A and B as arguments and return data type C objects.
Example
// binfunc.cpp
// compile with: /EHsc
//
// Structure used: binary_function<A,B,C> - base
// class used to create operator
// functions taking data types A
// and B and returning data type C.
#include <functional>
#include <iostream>
using namespace std ;
class binary_test : public binary_function<binary_test &,int,float>
{
public:
float value;
binary_test(){value=10.0;}
binary_test(float x){value=x;}
result_type operator<<(second_argument_type arg2);
};
binary_test::result_type
binary_test::operator<<(binary_test::second_argument_type arg2)
{
value = (float)(((int)value) << arg2);
cout << "New value after shift is " << value << endl;
return value;
}
int main(void)
{
binary_test item;
cout << "Begin" << endl;
item = item << 2;
}
Output
Begin
New value after shift is 40
Requirements
Header: < functional >