operator==,!=,<,<=,>,>=,<=>(std::basic_string_view)
| 定义于头文件 <string_view>
|
||
| template< class CharT, class Traits > constexpr bool operator==( std::basic_string_view<CharT,Traits> lhs, |
(1) | (C++17 起) |
| template< class CharT, class Traits > constexpr bool operator!=( std::basic_string_view<CharT,Traits> lhs, |
(2) | (C++17 起) (C++20 前) |
| template< class CharT, class Traits > constexpr bool operator<( std::basic_string_view<CharT,Traits> lhs, |
(3) | (C++17 起) (C++20 前) |
| template< class CharT, class Traits > constexpr bool operator<=( std::basic_string_view<CharT,Traits> lhs, |
(4) | (C++17 起) (C++20 前) |
| template< class CharT, class Traits > constexpr bool operator>( std::basic_string_view<CharT,Traits> lhs, |
(5) | (C++17 起) (C++20 前) |
| template< class CharT, class Traits > constexpr bool operator>=( std::basic_string_view<CharT,Traits> lhs, |
(6) | (C++17 起) (C++20 前) |
| template< class CharT, class Traits > constexpr /*comp-cat*/ |
(7) | (C++20 起) |
比较二个视图。
通过 compare() 成员函数进行所有比较(其自身以 Traits::compare() 定义):
- 若
lhs与rhs的大小相等且lhs中每个字符等于rhs在同一位置的字符,则二个视图相等。
- 比较顺序按字典序进行——由等价于 std::lexicographical_compare 的函数进行比较。
|
三路比较运算符的返回类型( /*comp-cat*/ )为 Traits::comparison_category ,若该有限定标识合法并指代类型,否则为 std::weak_ordering 。若 /*comp-cat*/ 不是比较类别类型,则程序为谬构。 |
(C++20 起) |
实现应对这些函数提供充足的额外 constexpr 及 noexcept 重载,以令 basic_string_view<CharT,Traits> 对象 sv 可以与另一带隐式转换成 basic_string_view<CharT,Traits> 的对象 t 比较,而且语义上与比较 sv 和 basic_string_view<CharT,Traits>(t) 相同。
参数
| lhs, rhs | - | 要比较的视图 |
返回值
复杂度
与视图大小成线性。
注解
充足的额外重载可通过一个参数类型中的非推导语境实现。
|
std::string_view 、 std::wstring_view 、 std::u8string_view 、 std::u16string_view 与 std::u32string_view 的三路比较结果类型为 std::strong_ordering 。 |
(C++20 起) |
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
| DR | 应用于 | 出版时的行为 | 正确行为 |
|---|---|---|---|
| LWG 3432 | C++20 | 未要求 operator<=> 的返回类型为比较类别类型
|
已要求 |