operator==,<=> (std::inplace_vector)
|
constexpr
friend
bool
operator
==
(
const
std::
inplace_vector
<
T, N
>
&
lhs,
const std:: inplace_vector < T, N > & rhs ) ; |
(1) | (depuis C++26) |
|
constexpr
friend
synth
-
three
-
way
-
result
<
T
>
operator
<=>
(
const
std::
inplace_vector
<
T, N
>
&
lhs,
|
(2) | (depuis C++26) |
Compare le contenu de deux std::inplace_vector s.
std:: lexicographical_compare_three_way ( lhs. begin ( ) , lhs. end ( ) ,
rhs. begin ( ) , rhs. end ( ) , synth - three - way ) ; .
-
Tmodélisethree_way_comparable. -
<est défini pour les valeurs de type (éventuellement qualifié const)T, et<est une relation d'ordre total.
Les opérateurs
<
,
<=
,
>
,
>=
et
!=
sont
synthétisés
respectivement à partir de
operator
<=>
et
operator
==
.
Table des matières |
Paramètres
| lhs, rhs | - | std::inplace_vector s dont le contenu doit être comparé |
-
T
doit satisfaire aux exigences de
EqualityComparable
pour utiliser les surcharges (1).
|
||
Valeur de retour
Complexité
Notes
Les opérateurs relationnels sont définis en termes de synth-three-way , qui utilise operator <=> si possible, ou operator < sinon.
Notamment, si l'élément ne fournit pas lui-même operator <=> , mais est implicitement convertible en un type comparable à trois voies, cette conversion sera utilisée à la place de operator < .
Exemple
#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 ("" "Comparer des conteneurs égaux :" && (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 && "Comparer des conteneurs non égaux :" && (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 && ""); }