libstdc++
stl_relops.h
Go to the documentation of this file.
1
// std::rel_ops implementation -*- C++ -*-
2
3
// Copyright (C) 2001, 2002, 2004, 2005, 2008 Free Software Foundation, Inc.
4
//
5
// This file is part of the GNU ISO C++ Library. This library is free
6
// software; you can redistribute it and/or modify it under the
7
// terms of the GNU General Public License as published by the
8
// Free Software Foundation; either version 3, or (at your option)
9
// any later version.
10
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
// GNU General Public License for more details.
15
16
// Under Section 7 of GPL version 3, you are granted additional
17
// permissions described in the GCC Runtime Library Exception, version
18
// 3.1, as published by the, 2009 Free Software Foundation.
19
20
// You should have received a copy of the GNU General Public License and
21
// a copy of the GCC Runtime Library Exception along with this program;
22
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23
// <http://www.gnu.org/licenses/>.
24
25
/*
26
*
27
* Copyright (c) 1994
28
* Hewlett-Packard Company
29
*
30
* Permission to use, copy, modify, distribute and sell this software
31
* and its documentation for any purpose is hereby granted without fee,
32
* provided that the above copyright notice appear in all copies and
33
* that both that copyright notice and this permission notice appear
34
* in supporting documentation. Hewlett-Packard Company makes no
35
* representations about the suitability of this software for any
36
* purpose. It is provided "as is" without express or implied warranty.
37
*
38
* Copyright (c) 1996,1997
39
* Silicon Graphics
40
*
41
* Permission to use, copy, modify, distribute and sell this software
42
* and its documentation for any purpose is hereby granted without fee,
43
* provided that the above copyright notice appear in all copies and
44
* that both that copyright notice and this permission notice appear
45
* in supporting documentation. Silicon Graphics makes no
46
* representations about the suitability of this software for any
47
* purpose. It is provided "as is" without express or implied warranty.
48
*
49
*/
50
51
/** @file stl_relops.h
52
* This is an internal header file, included by other library headers.
53
* You should not attempt to use it directly.
54
*
55
* Inclusion of this file has been removed from
56
* all of the other STL headers for safety reasons, except std_utility.h.
57
* For more information, see the thread of about twenty messages starting
58
* with http://gcc.gnu.org/ml/libstdc++/2001-01/msg00223.html, or
59
* http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.ambiguous_overloads
60
*
61
* Short summary: the rel_ops operators should be avoided for the present.
62
*/
63
64
#ifndef _STL_RELOPS_H
65
#define _STL_RELOPS_H 1
66
67
_GLIBCXX_BEGIN_NAMESPACE(std)
68
69
namespace rel_ops
70
{
71
/** @namespace std::rel_ops
72
* @brief The generated relational operators are sequestered here.
73
*/
74
75
/**
76
* @brief Defines @c != for arbitrary types, in terms of @c ==.
77
* @param x A thing.
78
* @param y Another thing.
79
* @return x != y
80
*
81
* This function uses @c == to determine its result.
82
*/
83
template
<
class
_Tp>
84
inline
bool
85
operator!=(
const
_Tp& __x,
const
_Tp& __y)
86
{
return
!(__x == __y); }
87
88
/**
89
* @brief Defines @c > for arbitrary types, in terms of @c <.
90
* @param x A thing.
91
* @param y Another thing.
92
* @return x > y
93
*
94
* This function uses @c < to determine its result.
95
*/
96
template
<
class
_Tp>
97
inline
bool
98
operator>(
const
_Tp& __x,
const
_Tp& __y)
99
{
return
__y < __x; }
100
101
/**
102
* @brief Defines @c <= for arbitrary types, in terms of @c <.
103
* @param x A thing.
104
* @param y Another thing.
105
* @return x <= y
106
*
107
* This function uses @c < to determine its result.
108
*/
109
template
<
class
_Tp>
110
inline
bool
111
operator<=(
const
_Tp& __x,
const
_Tp& __y)
112
{
return
!(__y < __x); }
113
114
/**
115
* @brief Defines @c >= for arbitrary types, in terms of @c <.
116
* @param x A thing.
117
* @param y Another thing.
118
* @return x >= y
119
*
120
* This function uses @c < to determine its result.
121
*/
122
template
<
class
_Tp>
123
inline
bool
124
operator>=(
const
_Tp& __x,
const
_Tp& __y)
125
{
return
!(__x < __y); }
126
127
}
// namespace rel_ops
128
129
_GLIBCXX_END_NAMESPACE
130
131
#endif
/* _STL_RELOPS_H */
include
bits
stl_relops.h
Generated on Wed Jan 30 2013 19:55:16 for libstdc++ by
1.8.3.1