On this page
std::rel_ops::operator!=,>,<=,>=
Defined in header <utility> |
||
|---|---|---|
|
(1) | (deprecated in C++20) |
|
(2) | (deprecated in C++20) |
|
(3) | (deprecated in C++20) |
|
(4) | (deprecated in C++20) |
Given a user-defined operator== and operator< for objects of type T, implements the usual semantics of other comparison operators.
1) Implements
operator!= in terms of operator==.
2) Implements
operator> in terms of operator<.
3) Implements
operator<= in terms of operator<.
4) Implements
operator>= in terms of operator<.
Parameters
| lhs | - | left-hand argument |
| rhs | - | right-hand argument |
Return value
1) Returns
true if lhs is not equal to rhs.
2) Returns
true if lhs is greater than rhs.
3) Returns
true if lhs is less or equal to rhs.
4) Returns
true if lhs is greater or equal to rhs.
Possible implementation
(1) operator!= |
|---|
|
(2) operator> |
|
(3) operator<= |
|
(4) operator>= |
|
Notes
Boost.operators provides a more versatile alternative to std::rel_ops.
As of C++20, std::rel_ops are deprecated in favor of operator<=>.
Example
#include <iostream>
#include <utility>
struct Foo
{
int n;
};
bool operator==(const Foo& lhs, const Foo& rhs)
{
return lhs.n == rhs.n;
}
bool operator<(const Foo& lhs, const Foo& rhs)
{
return lhs.n < rhs.n;
}
int main()
{
Foo f1 = {1};
Foo f2 = {2};
using namespace std::rel_ops;
std::cout << std::boolalpha
<< "{1} != {2} : " << (f1 != f2) << '\n'
<< "{1} > {2} : " << (f1 > f2) << '\n'
<< "{1} <= {2} : " << (f1 <= f2) << '\n'
<< "{1} >= {2} : " << (f1 >= f2) << '\n';
}
Output:
{1} != {2} : true
{1} > {2} : false
{1} <= {2} : true
{1} >= {2} : false
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/rel_ops/operator_cmp