名前空間
変種
操作

operator==,!=,<,<=,>,>=,<=>(std::basic_string_view)

提供: cppreference.com
 
 
 
 
ヘッダ <string_view> で定義
template< class CharT, class Traits >

constexpr bool operator==( std::basic_string_view<CharT,Traits> lhs,

                           std::basic_string_view<CharT,Traits> rhs ) noexcept;
(1) (C++17以上)
template< class CharT, class Traits >

constexpr bool operator!=( std::basic_string_view<CharT,Traits> lhs,

                           std::basic_string_view<CharT,Traits> rhs ) noexcept;
(2) (C++17以上)
(C++20未満)
template< class CharT, class Traits >

constexpr bool operator<( std::basic_string_view<CharT,Traits> lhs,

                          std::basic_string_view<CharT,Traits> rhs ) noexcept;
(3) (C++17以上)
(C++20未満)
template< class CharT, class Traits >

constexpr bool operator<=( std::basic_string_view<CharT,Traits> lhs,

                           std::basic_string_view<CharT,Traits> rhs ) noexcept;
(4) (C++17以上)
(C++20未満)
template< class CharT, class Traits >

constexpr bool operator>( std::basic_string_view<CharT,Traits> lhs,

                          std::basic_string_view<CharT,Traits> rhs ) noexcept;
(5) (C++17以上)
(C++20未満)
template< class CharT, class Traits >

constexpr bool operator>=( std::basic_string_view<CharT,Traits> lhs,

                           std::basic_string_view<CharT,Traits> rhs ) noexcept;
(6) (C++17以上)
(C++20未満)
template< class CharT, class Traits >

constexpr /*comp-cat*/
    operator<=>( std::basic_string_view<CharT,Traits> lhs,

                 std::basic_string_view<CharT,Traits> rhs ) noexcept;
(7) (C++20以上)

2つのビューを比較します。

すべての比較は compare() メンバ関数を通して行われます (compare() 自身は Traits::compare() によって定義されます)。

  • lhsrhs のサイズが等しく、 lhs 内のそれぞれの文字が rhs 内の同じ位置の文字と等しければ、2つのビューは等しくなります。

三方比較演算子の戻り値の型 (/*comp-cat*/) は、存在すれば Traits::comparison_category、そうでなければ std::weak_ordering です。

(C++20以上)

実装は、 basic_string_view<CharT,Traits> 型のオブジェクト svbasic_string_view<CharT,Traits> への暗黙に変換を持つ別のオブジェクト t と比較できるように、 svbasic_string_view<CharT,Traits>(t) を比較するのと同一のセマンティクスを持つ、これらの関数の充分な追加の constexpr および noexcept オーバーロードを提供しなければなりません。

目次

[編集] 引数

lhs, rhs - 比較するビュー

[編集] 戻り値

1-6) 対応する比較が成立すれば true、そうでなければ false
7) static_cast</*comp-cat*/>(lhs.compare(rhs) <=> 0)

[編集] ノート

充分な追加のオーバーロードは、1つの引数における非推定文脈で実装できます。

std::string_viewstd::wstring_viewstd::u8string_viewstd::u16string_view および std::u32string_view の三方比較の結果の型は std::strong_ordering です。

(C++20以上)

[編集] 計算量

ビューのサイズに比例。