DIGITAL logo   C++ Graphic
    Updated: 21 November 1998
  cxxlstd$help.HLP

Operators

Standard C++ Library Copyright 1996, Rogue Wave Software, Inc.

NAME

operator!=, operator>, operator<=, operator>= - Operators for the C++ Standard C++ Library

SYNOPSIS

#include <utility>

namespace rel_ops {

template <class T> bool operator!= (const T&, const T&);

template <class T> bool operator> (const T&, const T&);

template <class T> bool operator<= (const T&, const T&);

template <class T> bool operator>= (const T&, const T&); }

DESCRIPTION

To avoid redundant definitions of operator!= out of operator== and of operators >, <=, and >= out of operator<, the library provides these definitions:

operator!= returns !(x==y), operator> returns y<x, operator<= returns !(y<x), and operator>= returns !(x<y).

To avoid clashes with other global operators these definitions are contained in the namespace rel_ops. To use them either scope explicitly or provide a using declaration (e.g. using_namespace_rel_ops).

STANDARDS CONFORMANCE ANSI X3J16/ISO WG21 Joint C++ Committee


pair

Standard C++ Library Copyright 1996, Rogue Wave Software, Inc.

NAME

pair - A template for heterogeneous pairs of values.

SYNOPSIS

#include <utility>

template <class T1, class T2> struct pair ;

DESCRIPTION

The pair class provides a template for encapsulating pairs of values that may be of different types.

INTERFACE

template <class T1, class T2> struct pair { T1 first; T2 second; pair(); pair (const T1&, const T2&); ~pair(); };

template <class T1, class T2> bool operator== (const pair<T1, T2>&, const pair T1, T2>&);

template <class T1, class T2> bool operator!= (const pair<T1, T2>&, const pair T1, T2>&);

template <class T1, class T2> bool operator< (const pair<T1, T2>&, const pair T1, T2>&);

template <class T1, class T2> bool operator> (const pair<T1, T2>&, const pair T1, T2>&);

template <class T1, class T2> bool operator<= (const pair<T1, T2>&, const pair T1, T2>&);

template <class T1, class T2> bool operator>= (const pair<T1, T2>&, const pair T1, T2>&);

template <class T1, class T2> pair<T1,T2> make_pair (const T1&, const T2&);

CONSTRUCTORS AND DESTRUCTORS

pair (); Default constructor. Initializes first and second using their default constructors.

pair (const T1& x, const T2& y); The constructor creates a pair of types T1 and T2, making the necessary conversions in x and y.

~pair (); Destructor.

NON-MEMBER OPERATORS

template <class T1, class T2> bool operator== (const pair<T1, T2>& x, const pair T1, T2>& y); Returns true if (x.first == y.first && x.second == y.second) is true. Otherwise it returns false.

template <class T1, class T2> bool operator!= (const pair<T1, T2>& x, const pair T1, T2>& y); Returns !(x==y).

template <class T1, class T2> bool operator< (const pair<T1, T2>& x, const pair T1, T2>& y); Returns true if (x.first < y.first || (!(y.first < x.first) && x.second < y.second)) is true. Otherwise it returns false.

template <class T1, class T2> bool operator> (const pair<T1, T2>& x, const pair T1, T2>& y); Returns y < x.

template <class T1, class T2> bool operator<= (const pair<T1, T2>& x, const pair T1, T2>& y); Returns !(y < x).

template <class T1, class T2> bool operator>= (const pair<T1, T2>& x, const pair T1, T2>& y); Returns !(x < y).

NON-MEMBER FUNCTIONS

template <class T1, class T2> pair<T1,T2> make_pair(x,y); make_pair(x,y) creates a pair by deducing and returning the types of x and y.

STANDARDS CONFORMANCE ANSI X3J16/ISO WG21 Joint C++ Committee


pointer_to_binary_function

Standard C++ Library

NAME

pointer_to_binary_function - A function object which adapts a pointer to a binary function to work where a binary_function is called for.

SYNOPSIS

#include <functional>

template <class Arg1, class Arg2, class Result> class pointer_to_binary_function : public binary_function<Arg1, Arg2, Result> ;

DESCRIPTION

The pointer_to_binary_function class encapsulates a pointer to a two- argument function. The class provides an operator() so that the resulting object serves as a binary function object for that function.

The ptr_fun function is overloaded to create instances of a pointer_to_binary_function when provided with the appropriate pointer to a function.

INTERFACE

template <class Arg1, class Arg2, class Result>

class pointer_to_binary_function : public binary_function<Arg1, Arg2, Result> { public: typedef typename binary_function<Arg1, Arg2, Result>::second_argument_type second_argument_type; typedef typename binary_function<Arg1, Arg2, Result>::first_argument_type first_argument_type; typedef typename binary_function<Arg1, Arg2, Result>::result_type result_type; explicit pointer_to_binary_function (Result (*f)(Arg1, Arg2)); Result operator() (const Arg1&, const Arg2&) const; };

template<class Arg1, class Arg2, class Result> pointer_to_binary_function<Arg1, Arg2, Result> ptr_fun (Result (*x)(Arg1, Arg2));

SEE ALSO

binary_function, function_objects, pointer_to_unary_function, ptr_fun

STANDARDS CONFORMANCE ANSI X3J16/ISO WG21 Joint C++ Committee


pointer_to_unary_function

Standard C++ Library Copyright 1996, Rogue Wave Software, Inc.

NAME

pointer_to_unary_function - A function object class that adapts a pointer to a function to work where a unary_function is called for.

SYNOPSIS

#include <functional>

template <class Arg, class Result> class pointer_to_unary_function : public unary_function<Arg, Result>;

DESCRIPTION

The pointer_to_unary_function class encapsulates a pointer to a single-argument function. The class provides an operator() so that the resulting object serves as a function object for that function.

The ptr_fun function is overloaded to create instances of pointer_to_unary_function when provided with the appropriate pointer to a function.

INTERFACE

template <class Arg, class Result> class pointer_to_unary_function : public unary_function<Arg, Result> {

public: typedef typename unary_function<Arg,Result>::argument_type argument_type; typedef typename unary_function<Arg,Result>::result_type result_type; explicit pointer_to_unary_function (Result (*f)(Arg)); Result operator() (const Arg&) const; };

template<class Arg, class Result> pointer_to_unary_function<Arg, Result> ptr_fun (Result (*f)(Arg));

SEE ALSO

function_objects, pointer_to_binary_function, ptr_fun, unary_function

STANDARDS CONFORMANCE ANSI X3J16/ISO WG21 Joint C++ Committee


ptr_fun

Standard C++ Library Copyright 1996, Rogue Wave Software, Inc.

NAME

ptr_fun - A function that is overloaded to adapt a pointer to a function to work where a function is called for.

SYNOPSIS

#include <functional>

template<class Arg, class Result> pointer_to_unary_function<Arg, Result> ptr_fun (Result (*f)(Arg));

template<class Arg1, class Arg2, class Result> pointer_to_binary_function<Arg1, Arg2, Result> ptr_fun (Result (*x)(Arg1, Arg2));

DESCRIPTION

The pointer_to_unary_function and pointer_to_binary_function classes encapsulate pointers to functions and provide an operator() so that the resulting object serves as a function object for the function.

The ptr_fun function is overloaded to create instances of pointer_to_unary_function or pointer_to_binary_function when provided with the appropriate pointer to a function.

EXAMPLE

// // pnt2fnct.cpp // #include <functional> #include <deque> #include <vector> #include <algorithm> #include <iostream.h>

//Create a function int factorial(int x) { int result = 1; for(int i = 2; i <= x; i++) result *= i; return result; }

int main() { //Initialize a deque with an array of ints int init[7] = {1,2,3,4,5,6,7}; deque<int> d(init, init+7);

//Create an empty vector to store the factorials vector<int> v((size_t)7);

//Transform the numbers in the deque to their factorials and //store in the vector transform(d.begin(), d.end(), v.begin(), ptr_fun(factorial));

//Print the results cout << "The following numbers: " << endl << " "; copy(d.begin(),d.end(),ostream_iterator<int,char>(cout," "));

cout << endl << endl; cout << "Have the factorials: " << endl << " "; copy(v.begin(),v.end(),ostream_iterator<int,char>(cout," "));

return 0; }

Output : The following numbers: 1 2 3 4 5 6 7 Have the factorials: 1 2 6 24 120 720 5040

WARNING

If your compiler does not support default template parameters, you need to always supply the Allocator template argument. For instance, you will need to write :

vector<int, allocator<int> >

instead of :

vector<int>

SEE ALSO

function_objects, pointer_to_binary_function, pointer_to_unary_function

STANDARDS CONFORMANCE ANSI X3J16/ISO WG21 Joint C++ Committee

   
Burgundy bar
DIGITAL Home Feedback Search Sitemap Subscribe Help
Legal