https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109383
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- --- a/libstdc++-v3/include/std/typeindex +++ b/libstdc++-v3/include/std/typeindex @@ -87,13 +87,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION strong_ordering operator<=>(const type_index& __rhs) const noexcept { +#if __GXX_TYPEINFO_EQUALITY_INLINE +# if __GXX_MERGED_TYPEINFO_NAMES + return _M_target->name() <=> __rhs._M_target->name(); +# else + return __builtin_strcmp(_M_target->name(), __rhs._M_target->name()) <=> 0; +# endif +#else // __GXX_TYPEINFO_EQUALITY_INLINE if (*_M_target == *__rhs._M_target) return strong_ordering::equal; if (_M_target->before(*__rhs._M_target)) return strong_ordering::less; return strong_ordering::greater; +#endif // __GXX_TYPEINFO_EQUALITY_INLINE } -#endif +#endif // __cpp_lib_three_way_comparison size_t hash_code() const noexcept