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) (seit C++23)
template < class Allocator2 >

friend std:: strong_ordering
operator <=> ( const basic_stacktrace & lhs,

const basic_stacktrace < Allocator2 > & rhs ) noexcept ;
(2) (seit C++23)
1) Prüft, ob die Inhalte von lhs und rhs gleich sind, das heißt, sie haben die gleiche Anzahl an Elementen und jedes Element in lhs vergleicht sich gleich mit dem Element in rhs an derselben Position.
Entspricht return std:: equal ( lhs. begin ( ) , lhs. end ( ) , rhs. begin ( ) , rhs. end ( ) ) ; .
2) Gibt die relative Reihenfolge der Anzahl der Stacktrace-Einträge in lhs und rhs zurück, falls sie nicht gleich sind. Andernfalls (wenn die Anzahl der Elemente von lhs und rhs gleich ist), gibt die lexikographische Reihenfolge der Elemente von lhs und rhs zurück.
Entspricht
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 ( ) ) ;
.

Diese Funktionsvorlagen sind für gewöhnliche unqualified oder qualified lookup nicht sichtbar und können nur durch argument-dependent lookup gefunden werden, wenn std::basic_stacktrace<Allocator> eine assoziierte Klasse der Argumente ist.

Die < -, <= -, > -, >= - und != -Operatoren werden synthetisiert aus operator <=> beziehungsweise operator == .

Inhaltsverzeichnis

Parameter

lhs, rhs - basic_stacktrace s, deren Inhalte verglichen werden sollen

Rückgabewert

1) true wenn die Inhalte von lhs und rhs gleich sind, false andernfalls.
2) lhs. size ( ) <=> rhs. size ( ) falls das Ergebnis nicht std::strong_order::equal ist, die lexikographische Ordnung der Elemente von lhs und rhs andernfalls.

Komplexität

1,2) Konstant, falls lhs und rhs unterschiedliche Größe haben, ansonsten linear in der Größe von lhs .

Beispiel