Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
 
 
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, d.h. sie haben die gleiche Anzahl von Elementen und jedes Element in lhs vergleicht sich gleich mit dem Element in rhs an derselben Position.
Äquivalent zu return std::equal(lhs.begin(), lhs.end(), rhs.begin(), rhs.end());.
2) Gibt die relative Reihenfolge der Anzahl von Stacktrace-Einträgen in lhs und rhs zurück, wenn 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.
Äquivalent zu
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 Funktions-Templates sind für normale unqualifizierte oder qualifizierte Lookups nicht sichtbar und können nur durch argumentabhängige Lookups gefunden werden, wenn std::basic_stacktrace<Allocator> eine zu den Argumenten assoziierte Klasse ist.

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

Inhalt

[edit] Parameter

lhs, rhs - basic_stacktraces, deren Inhalte verglichen werden sollen

[edit] Rückgabewert

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

[edit] Komplexität

1,2) Konstant, wenn lhs und rhs unterschiedliche Größen haben, andernfalls linear zur Größe von lhs.

[edit] Beispiel