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) (自 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 是否相等,具体行为等同于:
  • char_type char 时,等同于 static_cast < unsigned char > ( a ) == static_cast < unsigned char > ( b )
  • 其他情况下等同于 a == b
2) 以全序方式比较 a b ,其行为等同于:
  • char_type char ,则表现为 static_cast < unsigned char > ( a ) < static_cast < unsigned char > ( b )
  • 否则表现为 a < b

请参阅 CharTraits 了解关于字符特征类中 X::eq X::lt 的通用要求。

目录

参数

a, b - 待比较的字符值

返回值

1) true a b 相等,否则为 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 的要求。