std::type_index::operator==,!=,<,<=,>,>=,<=>
来自cppreference.com
                    
                                        
                    < cpp | types | type index
                    
                                                            
                    |   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对象是否表示同一类型。
参数
| rhs | - |  要比较的另一 type_index 对象
 | 
返回值
7) 若底层 std::type_info 对象表示同一类型则为 std::strong_ordering::equal ,否则若 *this 的底层 std::type_info 对象在实现定义顺序中前趋 
rhs 的则为 std::strong_ordering::less ,否则为 std::strong_ordering::greater 。