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++ 标准。
缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
LWG 3432 | C++20 | 未要求 operator<=> 的返回类型为比较类别类型
|
已要求 |