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 的元素的字典顺序。
等价于
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 的大小成线性。
示例
本节未完成 原因:暂无示例 |