Namespaces
Variants

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

From cppreference.net
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 ( ) ) ;
.

Эти шаблоны функций не видны при обычном unqualified или qualified lookup , и могут быть найдены только с помощью argument-dependent lookup , когда std::basic_stacktrace<Allocator> является ассоциированным классом аргументов.

Операторы < , <= , > , >= и != синтезируются соответственно из operator <=> и operator == .

Содержание

Параметры

lhs, rhs - basic_stacktrace s, содержимое которых нужно сравнить

Возвращаемое значение

1) true если содержимое lhs и rhs равно, false в противном случае.
2) lhs. size ( ) <=> rhs. size ( ) если результат не равен std::strong_order::equal , лексикографический порядок элементов lhs и rhs в противном случае.

Сложность

1,2) Константная, если lhs и rhs имеют разный размер, линейная по размеру lhs в противном случае.

Пример