![]() |
![]() |
![]() |
![]() |
This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs. |
<utility>Include the STL
standard header <utility>
to define several templates of general use
throughout the Standard Template Library.
Four template operators --
operator!=,
operator<=,
operator>, and
operator>= -- define a
total ordering
on pairs of operands of the same type, given definitions of
operator== and operator<.
If an implementation
supports namespaces,
these template operators are defined in the
rel_ops namespace,
nested within the std namespace.
If you wish to make use of these template operators,
write the declaration:
using namespace std::rel_ops;
which promotes the template operators into the current namespace.
namespace std {
template<class T, class Ty2>
struct pair;
// TEMPLATE FUNCTIONS
template<class Ty1, class Ty2>
pair<Ty, Ty2> make_pair(Ty1 val1, Ty2 val2);
template<class Ty1, class Ty2>
bool operator==(const pair<Ty, Ty2>& left,
const pair<Ty1, Ty2>& right);
template<class Ty1, class Ty2>
bool operator!=(const pair<Ty, Ty2>& left,
const pair<Ty1, Ty2>& right);
template<class Ty1, class Ty2>
bool operator<(const pair<Ty, Ty2>& left,
const pair<Ty1, Ty2>& right);
template<class Ty1, class Ty2>
bool operator>(const pair<Ty1, Ty2>& left,
const pair<Ty1, Ty2>& right);
template<class Ty1, class Ty2>
bool operator<=(const pair<Ty1, Ty2>& left,
const pair<Ty1, Ty2>& right);
template<class Ty1, class Ty2>
bool operator>=(const pair<Ty1, Ty2>& left,
const pair<Ty1, Ty2>& right);
namespace rel_ops {
template<class Ty>
bool operator!=(const Ty& left, const Ty& right);
template<class Ty>
bool operator<=(const Ty& left, const Ty& right);
template<class Ty>
bool operator>(const Ty& left, const Ty& right);
template<class Ty>
bool operator>=(const Ty& left, const Ty& right);
};
};
make_pairtemplate<class Ty1, class Ty2>
pair<Ty1, Ty2> make_pair(Ty1 val1, Ty2 val2);
The template function returns
pair<Ty1, Ty2>(val1, val2).
operator!=template<class Ty>
bool operator!=(const Ty& left, const Ty& right);
template<class Ty1, class Ty2>
bool operator!=(const pair<Ty1, Ty2>& left,
const pair<Ty1, Ty2>& right);
The template function returns !(left == right).
operator==template<class Ty1, class Ty2>
bool operator==(const pair<Ty1, Ty2>& left,
const pair<Ty1, Ty2>& right);
The template function returns
left.first == right.first &&
left.second == right.second.
operator<template<class Ty1, class Ty2>
bool operator<(const pair<Ty1, Ty2>& left,
const pair<Ty1, Ty2>& right);
The template function returns
left.first < right.first ||
!(right.first < left.first &&
left.second < right.second).
operator<=template<class Ty>
bool operator<=(const Ty& left, const Ty& right);
template<class Ty1, class Ty2>
bool operator<=(const pair<Ty1, Ty2>& left,
const pair<Ty1, Ty2>& right);
The template function returns !(right < left).
operator>template<class Ty>
bool operator>(const Ty& left, const Ty& right);
template<class Ty1, class Ty2>
bool operator>(const pair<Ty1, Ty2>& left,
const pair<Ty1, Ty2>& right);
The template function returns right < left.
operator>=template<class Ty>
bool operator>=(const Ty& left, const Ty& right);
template<class Ty1, class Ty2>
bool operator>=(const pair<Ty1, Ty2>& left,
const pair<Ty1, Ty2>& right);
The template function returns !(left < right).
pairtemplate<class Ty1, class Ty2>
struct pair {
typedef Ty1 first_type;
typedef Ty2 second_type
Ty1 first;
Ty2 second;
pair();
pair(const Ty1& val1, const Ty2& val2);
template<class Other1, class Other2>
pair(const pair<Other1, Other2>& right);
};
The template class stores a pair of objects,
first,
of type Ty1, and
second,
of type Ty2. The type definition
first_type,
is the same as the template parameter Ty1, while
second_type,
is the same as the template parameter Ty2.
The first (default) constructor initializes
first to Ty1() and second
to Ty2(). The second constructor initializes
first to val1 and second
to val2. The third (template) constructor initializes
first to right.first and second
to right.second. Ty1 and Ty2 each
need supply only a default constructor, single-argument constructor,
and a destructor.
See also the Table of Contents and the Index.
Copyright © 1994-2002 by P.J. Plauger. Portions derived from work copyright © 1994 by Hewlett-Packard Company. All rights reserved.
![]() |
![]() |
![]() |