Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Illustrates how to use the unary_function<> structure in Visual C++.
template<class _A, class _R>
struct unary_function
{
typedef _A Argument_Type;
typedef _R Result_Type;
};
Remarks
Hinweis
The class/parameter names in the prototype do not match the version in the header file. Some have been modified to improve readability.
unary_function is used as a base class to better define operator functions in the following format: Result_Type classname::operatorX(Argument_Type).
Example
// unary_function.cpp
// compile with: /EHsc
//
// Structure used:
// unary_function<int, float> - allows us
// to write operator functions accepting an
// integer and returning floats.
////////////////////////////////////////////
#include <functional>
#include <iostream>
using namespace std ;
/* derive class from unary_function in order to use it */
class unary_test : public unary_function<int,float>
{
public:
float value;
unary_test(){value=10.0;}
unary_test(float x){value=x;}
result_type operator*(argument_type x);
result_type operator-(argument_type x);
};
/* You can now easily create operators that accept */
/* an int and return a float. */
unary_test::result_type unary_test::operator*(unary_test::argument_type x)
{
float tmp = value * (float)x;
cout << "Value after * is " << tmp << endl ;
return value;
}
unary_test::result_type unary_test::operator-(unary_test::argument_type x)
{
float tmp = value - (float)x;
cout << "Value after minus is " << tmp << endl ;
return tmp;
}
int main(void)
{
unary_test item;
unary_test item2(18.0);
cout << "Begin" << endl ;
cout.setf(ios::fixed) ;
item = item * 2;
item2 = item2 - 5;
}
Begin
Value after * is 20.000000
Value after minus is 13.000000
Requirements
Header: <functional>