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以上) |
2つのビューを比較します。
すべての比較は compare() メンバ関数を通して行われます (compare()
自身は Traits::compare()
によって定義されます)。
-
lhs
とrhs
のサイズが等しく、lhs
内のそれぞれの文字がrhs
内の同じ位置の文字と等しければ、2つのビューは等しくなります。
- 順序比較は辞書的に行われます。 比較は std::lexicographical_compare と同等な関数によって行われます。
三方比較演算子の戻り値の型 (/*comp-cat*/) は、存在すれば Traits::comparison_category、そうでなければ std::weak_ordering です。 |
(C++20以上) |
実装は、 basic_string_view<CharT,Traits>
型のオブジェクト sv
が basic_string_view<CharT,Traits>
への暗黙に変換を持つ別のオブジェクト t
と比較できるように、 sv
と basic_string_view<CharT,Traits>(t)
を比較するのと同一のセマンティクスを持つ、これらの関数の充分な追加の constexpr
および noexcept
オーバーロードを提供しなければなりません。
目次 |
[編集] 引数
lhs, rhs | - | 比較するビュー |
[編集] 戻り値
[編集] ノート
充分な追加のオーバーロードは、1つの引数における非推定文脈で実装できます。
std::string_view、 std::wstring_view、 std::u8string_view、 std::u16string_view および std::u32string_view の三方比較の結果の型は std::strong_ordering です。 |
(C++20以上) |
[編集] 計算量
ビューのサイズに比例。