MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
icomparable< T > 模板结构体 参考

可比较对象接口模板 更多...

#include <icommon.hpp>

类 icomparable< T > 继承关系图:
[图例]

Public 成员函数

MSTL_NODISCARD constexpr bool operator== (const T &rhs) const noexcept(noexcept(derived()==rhs))
 相等比较运算符
MSTL_NODISCARD constexpr bool operator!= (const T &rhs) const noexcept(noexcept(!(*this==rhs)))
 不等比较运算符
MSTL_NODISCARD constexpr bool operator< (const T &rhs) const noexcept(noexcept(derived()< rhs))
 小于比较运算符
MSTL_NODISCARD constexpr bool operator> (const T &rhs) const noexcept(noexcept(rhs< derived()))
 大于比较运算符
MSTL_NODISCARD constexpr bool operator<= (const T &rhs) const noexcept(noexcept(!(derived() > rhs)))
 小于等于比较运算符
MSTL_NODISCARD constexpr bool operator>= (const T &rhs) const noexcept(noexcept(!(derived()< rhs)))
 大于等于比较运算符

详细描述

template<typename T>
struct icomparable< T >

可比较对象接口模板

模板参数
T派生类类型

通过CRTP模式实现,派生类只需实现operator ==和operator <两个基本比较操作, 即可自动获得所有比较运算符的完整实现。

在文件 icommon.hpp67 行定义.

成员函数说明

◆ operator!=()

template<typename T>
MSTL_NODISCARD constexpr bool icomparable< T >::operator!= ( const T & rhs) const
inlineconstexprnoexcept

不等比较运算符

参数
rhs右操作数
返回
是否不相等

基于operator ==的结果取反得到不等比较结果。

在文件 icommon.hpp93 行定义.

◆ operator<()

template<typename T>
MSTL_NODISCARD constexpr bool icomparable< T >::operator< ( const T & rhs) const
inlineconstexprnoexcept

小于比较运算符

参数
rhs右操作数
返回
是否小于右操作数

调用派生类实现的operator <进行小于比较。

在文件 icommon.hpp105 行定义.

◆ operator<=()

template<typename T>
MSTL_NODISCARD constexpr bool icomparable< T >::operator<= ( const T & rhs) const
inlineconstexprnoexcept

小于等于比较运算符

参数
rhs右操作数
返回
是否小于等于右操作数

通过取反operator >的结果实现小于等于比较。

在文件 icommon.hpp129 行定义.

◆ operator==()

template<typename T>
MSTL_NODISCARD constexpr bool icomparable< T >::operator== ( const T & rhs) const
inlineconstexprnoexcept

相等比较运算符

参数
rhs右操作数
返回
是否相等

调用派生类实现的operator ==进行相等性判断。

在文件 icommon.hpp81 行定义.

◆ operator>()

template<typename T>
MSTL_NODISCARD constexpr bool icomparable< T >::operator> ( const T & rhs) const
inlineconstexprnoexcept

大于比较运算符

参数
rhs右操作数
返回
是否大于右操作数

通过交换操作数并调用operator <来实现大于比较。

在文件 icommon.hpp117 行定义.

◆ operator>=()

template<typename T>
MSTL_NODISCARD constexpr bool icomparable< T >::operator>= ( const T & rhs) const
inlineconstexprnoexcept

大于等于比较运算符

参数
rhs右操作数
返回
是否大于等于右操作数

通过取反operator <的结果实现大于等于比较。

在文件 icommon.hpp141 行定义.


该结构体的文档由以下文件生成: