Namespaces
Variants

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
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 ein 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 Zeicheneigenschaften für X::eq und X::lt .

Inhaltsverzeichnis

Parameter

a, b - zu vergleichende Zeichenwerte

Rückgabewert

1) true wenn a und b gleich sind, false andernfalls.
2) true wenn a kleiner als b ist, false andernfalls.

Komplexität

Konstante.

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 467 C++98 für std:: char_traits < char > sind die Semantiken von eq() und lt()
identisch mit den eingebauten == und < auf char jeweils [1]
geändert zu eingebauten == und
< auf unsigned char
  1. Die meisten Implementierungen rufen std::memcmp() aus Effizienzgründen auf, was die Daten als Arrays von unsigned char interpretiert. Wenn char signiert ist auf solchen Implementierungen, std:: char_traits < char > erfüllt nicht die Anforderungen von CharTraits .