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

From cppreference.com
Utilities library
General utilities
Relational operators (deprecated in C++20)
std::type_index
Member functions
type_index::operator= type_index::operator!= type_index::operator< type_index::operator<= type_index::operator> type_index::operator>= type_index::operator<=>
(until C++20) (C++20)
Helper classes
bool operator == ( const type_index & rhs ) const noexcept ;
(1) (since C++11)
bool operator ! = ( const type_index & rhs ) const noexcept ;
(2) (since C++11)
(until C++20)
bool operator < ( const type_index & rhs ) const noexcept ;
(3) (since C++11)
bool operator <= ( const type_index & rhs ) const noexcept ;
(4) (since C++11)
bool operator > ( const type_index & rhs ) const noexcept ;
(5) (since C++11)
bool operator >= ( const type_index & rhs ) const noexcept ;
(6) (since C++11)
std:: strong_ordering operator <=> ( const type_index & rhs ) const noexcept ;
(7) (since C++20)

Compares the underlying std::type_info objects.

1,2) Checks whether the underlying std::type_info objects refer to the same type.
3-7) Compares the underlying std::type_info objects as defined by an implementation-defined ordering. The comparison is done by type_info::before .

The != operator is synthesized from operator== .

(since C++20)

Parameters

rhs - another type_index object to compare to

Return value

1) true if the underlying std::type_info objects refer to the same type, false otherwise.
2) true if the underlying std::type_info objects refer not to the same type, false otherwise.
3-6) true if the types referred by the underlying std::type_info objects are ordered by corresponding order, false otherwise.
7) std :: strong_ordering :: equal if the underlying std::type_info objects refer to the same type, otherwise std :: strong_ordering :: less if * this 's underlying std::type_info object precedes rhs 's in the implementation-defined ordering, otherwise std :: strong_ordering :: greater .