operator==, operator<=>(std::basic_stacktrace)
Материал из cppreference.com
<tbody>
</tbody>
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());.
Эти функции template не видны обычному неквалифицированному или квалифицированному поиску и могут быть найдены только с помощью зависящего от аргумента поиска, когда std::basic_stacktrace<Allocator> является ассоциированным классом аргументом.
Операторы <, <=, >, >= и != синтезируются из operator<=> и operator== соответственно.
Параметры
| lhs, rhs | — | basic_stacktrace, содержимое которых нужно сравнить
|
Возвращаемое значение
1)
true, если содержимое lhs и rhs равно, false иначе.2)
lhs.size() <=> rhs.size(), если результат не std::strong_order::equal, лексикографический порядок элементов lhs и rhs иначе.Сложность
1,2) Константая, если
lhs и rhs имеют разный размер, линейная по размеру lhs иначе.Пример
| Этот раздел не завершён Причина: нет примера |