命名空间
变体
操作

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

来自 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 的元素数量相等),则返回 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) 如果 lhsrhs 的内容相等,则为 true,否则为 false
2) lhs.size() <=> rhs.size() 如果结果不是 std::strong_order::equal,则为 lhsrhs 元素的字典顺序。

[编辑] 复杂度

1,2) 如果 lhsrhs 大小不同,则为常数;否则,在 lhs 的大小内为线性。

[编辑] 示例