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 since C++11)
(noexcept since C++11) |
|
static
bool
lt
(
char_type a, char_type b
)
;
|
(2) |
(constexpr since C++11)
(noexcept since C++11) |
2つの文字を比較します。
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より小さい場合は
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 の要件を満たさなくなる。