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
<
cpp
|
string
|
char traits
|
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_typees 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_typees 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 |
- ↑ 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 .