diff --git a/libstdc++-v3/include/std/string_view b/libstdc++-v3/include/std/string_view index e30a9c1768e..a7c5a126461 100644 --- a/libstdc++-v3/include/std/string_view +++ b/libstdc++-v3/include/std/string_view @@ -602,15 +602,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // deduction and the other argument gets implicitly converted to the deduced // type (see N3766). +#if __cpp_lib_three_way_comparison template [[nodiscard]] constexpr bool operator==(basic_string_view<_CharT, _Traits> __x, - __type_identity_t> __y) + type_identity_t> __y) noexcept { return __x.size() == __y.size() && __x.compare(__y) == 0; } -#if __cpp_lib_three_way_comparison template [[nodiscard]] constexpr auto @@ -620,6 +620,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION -> decltype(__detail::__char_traits_cmp_cat<_Traits>(0)) { return __detail::__char_traits_cmp_cat<_Traits>(__x.compare(__y)); } #else + template + [[nodiscard]] + constexpr bool + operator==(basic_string_view<_CharT, _Traits> __x, + __type_identity_t> __y) + noexcept + { return __x.size() == __y.size() && __x.compare(__y) == 0; } + template [[nodiscard]] constexpr bool