std::rel_ops::operators
STD::REL[医]操作员%21=,>,<=,>=
Defined in header | | |
---|---|---|
template< class T > bool operator!=( const T& lhs, const T& rhs | (1) | |
template< class T > bool operator>( const T& lhs, const T& rhs | (2) | |
template< class T > bool operator<=( const T& lhs, const T& rhs | (3) | |
template< class T > bool operator>=( const T& lhs, const T& rhs | (4) | |
给定用户定义的operator==和operator<类型对象T,实现其他比较运算符的常用语义。
1%29件工具operator!=
就...而言operator==
...
2%29件工具operator>就...而言operator<...
3%29件工具operator<=就...而言operator<...
4%29件工具operator>=就...而言operator<...
参数
lhs | - | left-hand argument |
---|---|---|
rhs | - | right-hand argument |
返回值
1%29true
如果lhs
是不平等
到rhs
...
2%29true
如果lhs
是更大
比rhs
...
3%29true
如果lhs
是少于或相等
到rhs
...
4%29true
如果lhs
是更大或更平等
到rhs
...
可能的实施
第一版
*。
命名空间rel[医]OPS{Template<class T>bool运算符%21=%28 const T&lhs,const T&rhs%29{返回%21%28 lhs==rhs%29;}
第二版
命名空间rel[医]OPS{模板<类T>bool运算符>%28 Const T&LHS,Const T&RHS%29{返回RHS<LHS;}
第三版
命名空间rel[医]OPS{Template<class T>bool运算符<=%28 const T&lhs,const T&rhs%29{返回%21%28 rhs<lhs%29;}}
第四版
命名空间rel[医]OPS{Template<class T>bool操作符>=%28 const T&lhs,const T&rhs%29{返回%21%28 lhs<rhs%29;}
注记
加油。操作者提供了一种更通用的替代方案std::rel_ops
...
例
二次
#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;
std::cout << "not equal? : " << (f1 != f2) << '\n';
std::cout << "greater? : " << (f1 > f2) << '\n';
std::cout << "less equal? : " << (f1 <= f2) << '\n';
std::cout << "greater equal? : " << (f1 >= f2) << '\n';
}
二次
产出:
二次
not equal? : true
greater? : false
less equal? : true
greater equal? : false
二次
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。