operator==, operator<=>(std::basic_stacktrace)
Von cppreference.com
< cpp | utility | basic stacktrace
| template< class Allocator2 > friend bool operator==( const basic_stacktrace& lhs, |
(1) | (seit C++23) |
| template< class Allocator2 > friend std::strong_ordering |
(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)
if (auto cmp = lhs.size() <=> rhs.size(); cmp != 0)
return cmp;
else
return std::lexicographical_compare_three_way(lhs.begin(), lhs.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
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |