std::type_index::operator==,!=,<,<=,>,>=,<=>

来自cppreference.com
< cpp‎ | types‎ | type index
 
 
 
 
std::type_index
成员函数
type_index::operator=type_index::operator!=type_index::operator<type_index::operator<=type_index::operator>type_index::operator>=type_index::operator<=>
(C++20 前)(C++20)
辅助类
 
bool operator==( const type_index& rhs ) const noexcept;
(1)(C++11 起)
bool operator!=( const type_index& rhs ) const noexcept;
(2)(C++11 起)
(C++20 前)
bool operator<( const type_index& rhs ) const noexcept;
(3)(C++11 起)
bool operator<=( const type_index& rhs ) const noexcept;
(4)(C++11 起)
bool operator>( const type_index& rhs ) const noexcept;
(5)(C++11 起)
bool operator>=( const type_index& rhs ) const noexcept;
(6)(C++11 起)
std::strong_ordering operator<=>( const type_index& rhs ) const noexcept;
(7)(C++20 起)

比较底层 std::type_info 对象。

1,2) 检查底层的 std::type_info 对象是否代表同一类型。
3-7) 按实现定义顺序的定义,比较底层 std::type_info 对象。比较由 type_info::before 执行。

!= 运算符从 operator== 运算符合成

(C++20 起)

参数

rhs-要比较的另一 type_index 对象

返回值

1) 若底层 std::type_info 对象表示同一类型则为 true,否则为 false
2) 若底层 std::type_info 对象不表示同一类型则为 true,否则为 false
3-6) 若底层 std::type_info 所表示的类型按对应顺序排列,则为 true,否则为 false
7) 若底层 std::type_info 对象表示同一类型则为 std::strong_ordering::equal,否则若 *this 的底层 std::type_info 对象在实现定义顺序中前趋 rhs 的则为 std::strong_ordering::less,否则为 std::strong_ordering::greater