Namensräume
Varianten
Aktionen

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_type char 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_type char 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
  1. 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.