名前空間
変種
操作

operator==, operator<=>(std::basic_stacktrace)

From cppreference.com
 
 
 
 
template< class Allocator2 >

friend bool operator==( const basic_stacktrace& lhs,

                        const basic_stacktrace<Allocator2>& rhs ) noexcept;
(1) (C++23から)
template< class Allocator2 >

friend std::strong_ordering
    operator<=>( const basic_stacktrace& lhs,

                 const basic_stacktrace<Allocator2>& rhs ) noexcept;
(2) (C++23から)
1) lhsrhs の内容が等しいかどうかをチェックします。つまり、要素数が同じで、lhs の各要素が rhs の同じ位置の要素と比較して等しい場合です。
return std::equal(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()); と同等です。
2) lhsrhs のスタックトレースエントリ数の相対的な順序を返します(等しくない場合)。それ以外の場合(lhsrhs の要素数が等しい場合)は、lhsrhs の要素の辞書式順序を返します。
以下と同等です。
if (auto cmp = lhs.size() <=> rhs.size(); cmp != 0)

    return cmp;
else
    return std::lexicographical_compare_three_way(lhs.begin(), lhs.end(),

                                                  rhs.begin(), rhs.end());
.

これらの関数テンプレートは、通常の修飾なしまたは修飾ありの検索では見えず、std::basic_stacktrace<Allocator> が引数の関連クラスである場合にのみ、引数依存の名前探索によって見つけることができます。

<, <=, >, >=, != 演算子は、それぞれ operator<=>operator== から合成されます。

目次

[編集] パラメータ

lhs, rhs - 比較する内容の `basic_stacktrace`

[編集] 戻り値

1) true lhsrhs の内容が等しい場合、それ以外の場合は false
2) lhs.size() <=> rhs.size()std::strong_order::equal でない場合、それ以外の場合は lhsrhs の要素の辞書式順序。

[編集] 計算量

1,2) lhsrhs のサイズが異なる場合は定数時間、それ以外の場合は lhs のサイズに線形時間。

[編集]

English 日本語 中文(简体) 中文(繁體)