Namespaces
Variants

std::char_traits<char>:: eq/lt, std::char_traits<wchar_t>:: eq/lt, std::char_traits<char8_t>:: eq/lt, std::char_traits<char16_t>:: eq/lt, std::char_traits<char32_t>:: eq/lt

From cppreference.net
static bool eq ( char_type a, char_type b ) ;
(1) (constexpr desde C++11)
(noexcept desde C++11)
static bool lt ( char_type a, char_type b ) ;
(2) (constexpr desde C++11)
(noexcept desde C++11)

Compara dos caracteres.

1) Compara a y b para igualdad, se comporta idénticamente a
  • static_cast < unsigned char > ( a ) == static_cast < unsigned char > ( b ) , si char_type es char ,
  • a == b en caso contrario.
2) Compara a y b de tal manera que están totalmente ordenados, se comporta idénticamente a
  • static_cast < unsigned char > ( a ) < static_cast < unsigned char > ( b ) , si char_type es char ,
  • a < b en caso contrario.

Consulte CharTraits para los requisitos generales sobre rasgos de caracteres para X::eq y X::lt .

Contenidos

Parámetros

a, b - valores de caracteres a comparar

Valor de retorno

1) true si a y b son iguales, false en caso contrario.
2) true si a es menor que b , false en caso contrario.

Complejidad

Constante.

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 467 C++98 para std:: char_traits < char > , la semántica de eq() y lt()
es la misma que los operadores incorporados == y < en char respectivamente [1]
cambiado a operadores incorporados == y
< en unsigned char
  1. La mayoría de las implementaciones llaman std::memcmp() por eficiencia, que interpreta los datos como arreglos de unsigned char . Si char está firmado en tales implementaciones, std:: char_traits < char > no cumple con los requisitos de CharTraits .