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

< cpp‎ | utility‎ | basic stacktrace

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) 检查 `lhs` 与 `rhs` 的内容是否相等，即它们拥有相同元素数且 `lhs` 中的元素比较等于 `rhs` 中相同位置的元素。
等价于 return std::equal(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()); 。
2) 返回 `lhs` 与 `rhs` 中的栈踪条目数的相对顺序，若它们不相等。否则（若 `lhs` 与 `rhs` 的元素数相等），则返回 `lhs` 与 `rhs` 的元素的字典序。
等价于
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) 若 `lhs` 与 `rhs` 的内容相等则为 true ，否则为 false 。
2) lhs.size() <=> rhs.size() ，若结果不是 std::strong_order::equal ，否则为 `lhs` 与 `rhs` 的元素的字典序。

### 复杂度

1-2) 若 `lhs` 与 `rhs` 大小不同则为常数，否则与 `lhs` 的大小成线性。

### 示例

| 本节未完成 原因：暂无示例