operator==, operator<=>(std::basic_stacktrace)
来自 cppreference.com
< cpp | utility | basic stacktrace
template< class Allocator2 > friend bool operator==( const basic_stacktrace& lhs, |
(1) | (自 C++23 起) |
template< class Allocator2 > friend std::strong_ordering |
(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 的元素数量相等),则返回 lhs 和 rhs 元素的字典顺序。
等同于
if (auto cmp = lhs.size() <=> rhs.size(); cmp != 0)
if (auto cmp = lhs.size() <=> rhs.size(); cmp != 0)
return cmp;
else
return std::lexicographical_compare_three_way(lhs.begin(), lhs.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 的大小内为线性。
[编辑] 示例
本节内容不完整 原因:没有示例 |