Espacios de nombres
Variantes
Acciones

operator==,!=,<,<=,>,>=,<=>(std::basic_string_view)

De cppreference.com
 
 
 
 
Definido en el archivo de encabezado <string_view>
template< typename CharT, typename Traits >

constexpr bool operator==( std::basic_string_view<CharT,Traits> lhs,

                           std::basic_string_view<CharT,Traits> rhs ) noexcept;
(1) (desde C++17)
template< typename CharT, typename Traits >

constexpr bool operator!=( std::basic_string_view<CharT,Traits> lhs,

                           std::basic_string_view<CharT,Traits> rhs ) noexcept;
(2) (desde C++17)
(hasta C++20)
template< typename CharT, typename Traits >

constexpr bool operator<( std::basic_string_view<CharT,Traits> lhs,

                          std::basic_string_view<CharT,Traits> rhs ) noexcept;
(3) (desde C++17)
(hasta C++20)
template< typename CharT, typename Traits >

constexpr bool operator<=( std::basic_string_view<CharT,Traits> lhs,

                           std::basic_string_view<CharT,Traits> rhs ) noexcept;
(4) (desde C++17)
(hasta C++20)
template< typename CharT, typename Traits >

constexpr bool operator>( std::basic_string_view<CharT,Traits> lhs,

                          std::basic_string_view<CharT,Traits> rhs ) noexcept;
(5) (desde C++17)
(hasta C++20)
template< typename CharT, typename Traits >

constexpr bool operator>=( std::basic_string_view<CharT,Traits> lhs,

                           std::basic_string_view<CharT,Traits> rhs ) noexcept;
(6) (desde C++17)
(hasta C++20)
template< typename CharT, typename Traits >

constexpr /*cat-comp*/
    operator<=>( std::basic_string_view<CharT,Traits> lhs,

                 std::basic_string_view<CharT,Traits> rhs ) noexcept;
(7) (desde C++20)

Compara dos vistas.

Todas las comparaciones se realizan mediante la función miembro compare() (que en sí misma se define en términos de Traits::compare()):

  • Dos vistas son iguales si tanto el tamaño de lhs como de rhs son iguales y cada carácter en lhs tiene un carácter equivalente en rhs en la misma posición.
  • El orden de las comparaciones se efectúa lexicográficamente -- la comparación se realiza mediante una función equivalente a std::lexicographical_compare.

El tipo de retorno del operador de comparación de tres vías (/*cat-comp*/) es Traits::comparison_category si existe, de otra forma std::weak_ordering.

(desde C++20)

La implementación deberá proporcionar suficientes sobrecargas adicionales constexpr y noexcept de estas funciones de tal manera que un objeto basic_string_view<CharT,Traits> sv pueda compararse con otro objeto t con una conversión implícita a basic_string_view<CharT,Traits>, con semántica idéntica a comparar sv y basic_string_view<CharT,Traits>(t).

Contenido

[editar] Parámetros

lhs, rhs - Vistas a comparar

[editar] Valor de retorno

1-6) true si la comparación correspondiente se mantiene, de otra manera false.
7) static_cast</*cat-comp*/>(lhs.compare(rhs) <=> 0).

[editar] Notas

Se pueden implementar suficientes sobrecargas adicionales mediante un contexto no deducido en un tipo de parámetro.

El tipo del resultado de la comparación de tres vías de std::string_view, std::wstring_view, std::u8string_view, std::u16string_view y std::u32string_view es std::strong_ordering.

(desde C++20)

[editar] Complejidad

Lineal en el tamaño de las vistas.