operator==,<=> (std::inplace_vector)
|
constexpr
friend
bool
operator
==
(
const
std::
inplace_vector
<
T, N
>
&
lhs,
const std:: inplace_vector < T, N > & rhs ) ; |
(1) | (seit C++26) |
|
constexpr
friend
synth
-
three
-
way
-
result
<
T
>
operator
<=>
(
const
std::
inplace_vector
<
T, N
>
&
lhs,
|
(2) | (seit C++26) |
Vergleicht die Inhalte von zwei std::inplace_vector s.
std:: lexicographical_compare_three_way ( lhs. begin ( ) , lhs. end ( ) ,
rhs. begin ( ) , rhs. end ( ) , synth - three - way ) ; .
-
Tmodelliertthree_way_comparable. -
<ist für Werte vom Typ (möglicherweise const-qualifiziert)Tdefiniert, und<ist eine Totalordnung.
Die
<
-,
<=
-,
>
-,
>=
- und
!=
-Operatoren werden
synthetisiert
aus
operator
<=>
beziehungsweise
operator
==
.
Inhaltsverzeichnis |
Parameter
| lhs, rhs | - | std::inplace_vector s, deren Inhalte verglichen werden sollen |
-
T
muss die Anforderungen von
EqualityComparable
erfüllen, um die Überladungen (1) verwenden zu können.
|
||
Rückgabewert
Komplexität
Hinweise
Die relationalen Operatoren sind definiert in Bezug auf synth-three-way , welches operator <=> verwendet, falls möglich, oder andernfalls operator < .
Insbesondere, wenn das Element selbst keinen operator <=> bereitstellt, aber implizit in einen dreiweg-vergleichbaren Typ konvertierbar ist, wird diese Konvertierung anstelle von operator < verwendet.
Beispiel
#include <inplace_vector> int main() { constexpr std::inplace_vector<int, 4> a{1, 2, 3}, b{1, 2, 3}, c{7, 8, 9, 10}; static_assert ("" "Vergleiche gleiche Container:" && (a != b) == false && (a == b) == true && (a < b) == false && (a <= b) == true && (a > b) == false && (a >= b) == true && (a <=> b) >= 0 && (a <=> b) <= 0 && (a <=> b) == 0 && "Vergleiche ungleiche Container:" && (a != c) == true && (a == c) == false && (a < c) == true && (a <= c) == true && (a > c) == false && (a >= c) == false && (a <=> c) < 0 && (a <=> c) != 0 && (a <=> c) <= 0 && ""); }