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
Von cppreference.com
< cpp | string | char traits
| static bool eq( char_type a, char_type b ); |
(1) | (constexpr seit C++11) (noexcept seit C++11) |
| static bool lt( char_type a, char_type b ); |
(2) | (constexpr seit C++11) (noexcept seit C++11) |
Vergleicht zwei Zeichen.
1) Vergleicht a und b auf Gleichheit, verhält sich identisch zu
- static_cast<unsigned char>(a) == static_cast<unsigned char>(b), falls
char_typechar ist, - a == b andernfalls.
2) Vergleicht a und b so, dass sie total geordnet sind, verhält sich identisch zu
- static_cast<unsigned char>(a) < static_cast<unsigned char>(b), falls
char_typechar ist, - a < b andernfalls.
Siehe CharTraits für die allgemeinen Anforderungen an Zeichen-Traits für X::eq und X::lt.
Inhalt |
[edit] Parameter
| a, b | - | zu vergleichende Zeichenwerte |
[edit] Rückgabewert
1) true, wenn a und b gleich sind, false andernfalls.
2) true, wenn a kleiner als b ist, false andernfalls.
[edit] Komplexität
Konstant.
[edit] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 467 | C++98 | für std::char_traits<char>, die Semantik von eq() und lt()sind identisch mit den eingebauten == und < auf char bzw.[1] |
geändert zu eingebauten == und < auf unsigned char |
- ↑ Die meisten Implementierungen rufen std::memcmp() aus Effizienzgründen auf, welche die Daten als Arrays von unsigned char interpretiert. Wenn char signed ist, erfüllt std::char_traits<char> nicht die Anforderungen von CharTraits.