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) |
(C++11부터 constexpr)
(C++11부터 noexcept) |
|
static
bool
lt
(
char_type a, char_type b
)
;
|
(2) |
(C++11부터 constexpr)
(C++11부터 noexcept) |
두 문자를 비교합니다.
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 요구 사항을 충족하지 못합니다.