名稱空間
變體
操作

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

來自 cppreference.com
< cpp‎ | string‎ | char traits
static bool eq( char_type a, char_type b );
(1) (C++11 起為 constexpr)
(C++11 起無異常丟擲)
static bool lt( char_type a, char_type b );
(2) (C++11 起為 constexpr)
(C++11 起無異常丟擲)

比較兩個字元。

1) 比較 ab 是否相等,行為與以下相同:
  • static_cast<unsigned char>(a) == static_cast<unsigned char>(b),如果 char_typechar
  • a == b 否則。
2) 比較 ab 以使它們完全有序,行為與以下相同:
  • static_cast<unsigned char>(a) < static_cast<unsigned char>(b),如果 char_typechar
  • a < b 否則。

有關字元特性對 X::eqX::lt 的一般要求,請參見 CharTraits

目錄

[編輯] 引數

a, b - 要比較的字元值

[編輯] 返回值

1) 如果 ab 相等則為 true,否則為 false
2) 如果 a 小於 b 則為 true,否則為 false

[編輯] 複雜度

常數時間。

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
LWG 467 C++98 對於 std::char_traits<char>eq()lt() 的語義
分別與內建的 ==<char 上相同[1]
更改為內建的 ==
<unsigned char
  1. 大多數實現為了效率呼叫 std::memcmp(),它將資料解釋為 unsigned char 陣列。如果 char 在這些實現上是有符號的std::char_traits<char> 未能滿足 CharTraits 的要求。