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 начиная с C++11)
(noexcept начиная с C++11) |
|
static
bool
lt
(
char_type a, char_type b
)
;
|
(2) |
(constexpr начиная с C++11)
(noexcept начиная с C++11) |
Сравнивает два символа.
1)
Сравнивает
a
и
b
на равенство, ведёт себя идентично
-
static_cast
<
unsigned
char
>
(
a
)
==
static_cast
<
unsigned
char
>
(
b
)
, если
char_typeявляется char , - a == b в противном случае.
2)
Сравнивает
a
и
b
таким образом, что они полностью упорядочены, ведёт себя идентично
-
static_cast
<
unsigned
char
>
(
a
)
<
static_cast
<
unsigned
char
>
(
b
)
, если
char_typeявляется char , - a < b в противном случае.
См.
CharTraits
для общих требований к характеристикам символов для
X::eq
и
X::lt
.
Содержание |
Параметры
| a, b | - | символьные значения для сравнения |
Возвращаемое значение
1)
true
если
a
и
b
равны,
false
в противном случае.
2)
true
если
a
меньше
b
,
false
в противном случае.
Сложность
Константа.
Отчеты о дефектах
Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение в опубликованной версии | Корректное поведение |
|---|---|---|---|
| LWG 467 | C++98 |
для
std::
char_traits
<
char
>
семантика
eq()
и
lt()
совпадает со встроенными операторами == и < для char соответственно [1] |
изменено на встроенные операторы
==
и
< для unsigned char |
- ↑ Большинство реализаций вызывают std::memcmp() для эффективности, который интерпретирует данные как массивы unsigned char . Если char является знаковым в таких реализациях, std:: char_traits < char > не удовлетворяет требованиям CharTraits .