std::rel_ops::operator!=,>,<=,>=
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
在头文件 <utility> 中定义
|
||
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<类型
1) T
的对象,实现其它比较运算符通常的语义.原文:
Given a user-defined operator== and operator< for objects of type
T
, implements the usual semantics of other comparison operators.实现operator!=的operator==.
2) 原文:
Implements operator!= in terms of operator==.
实现operator>的operator<.
3) 原文:
Implements operator> in terms of operator<.
实现operator<=的operator<.
4) 原文:
Implements operator<= in terms of operator<.
实现operator>=的operator<.
原文:
Implements operator>= in terms of operator<.
目录 |
[编辑] 参数
lhs | - | 左边的参数
|
rhs | - | 右手的说法
|
[编辑] 返回值
1)返回true
2) lhs
是“不等于”rhs
.原文:
Returns true if
lhs
is not equal to rhs
.如果true返回
3) lhs
是“更大的”比rhs
.原文:
Returns true if
lhs
is greater than rhs
.返回true
4) lhs
是“小于或等于”rhs
.原文:
Returns true if
lhs
is less or equal to rhs
.返回true
lhs
是“大于或等于”rhs
.原文:
Returns true if
lhs
is greater or equal to rhs
.[编辑] 可能的实现
版本一 |
---|
namespace rel_ops { template< class T > bool operator!=( const T& lhs, const T& rhs ) { return !(lhs == rhs); } } |
版本二 |
namespace rel_ops { template< class T > bool operator>( const T& lhs, const T& rhs ) { return rhs < lhs; } } |
版本三 |
namespace rel_ops { template< class T > bool operator<=( const T& lhs, const T& rhs ) { return !(rhs < lhs);; } } |
版本四 |
namespace rel_ops { template< class T > bool operator>=( const T& lhs, const T& rhs ) { return !(lhs < rhs); } } |
[编辑] 示例
#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? : " << (bool) (f1 != f2) << '\n'; std::cout << "greater? : " << (bool) (f1 > f2) << '\n'; std::cout << "less equal? : " << (bool) (f1 <= f2) << '\n'; std::cout << "greater equal? : " << (bool) (f1 >= f2) << '\n'; }
输出:
not equal? : true greater? : false less equal? : true greater equal? : false