operator==,<=> (std::inplace_vector)
|
constexpr
friend
bool
operator
==
(
const
std::
inplace_vector
<
T, N
>
&
lhs,
const std:: inplace_vector < T, N > & rhs ) ; |
(1) | (desde C++26) |
|
constexpr
friend
synth
-
three
-
way
-
result
<
T
>
operator
<=>
(
const
std::
inplace_vector
<
T, N
>
&
lhs,
|
(2) | (desde C++26) |
Compara el contenido de dos std::inplace_vector s.
std:: lexicographical_compare_three_way ( lhs. begin ( ) , lhs. end ( ) ,
rhs. begin ( ) , rhs. end ( ) , synth - three - way ) ; .
-
Timplementathree_way_comparable. -
<está definido para valores de tipo (posiblemente calificado con const)T, y<es una relación de orden total.
Los operadores
<
,
<=
,
>
,
>=
y
!=
se
sintetizan
a partir de
operator
<=>
y
operator
==
respectivamente.
Contenidos |
Parámetros
| lhs, rhs | - | std::inplace_vector s cuyos contenidos comparar |
-
T
debe cumplir con los requisitos de
EqualityComparable
para utilizar las sobrecargas (1).
|
||
Valor de retorno
Complejidad
Notas
Los operadores relacionales se definen en términos de synth-three-way , que utiliza operator <=> si es posible, o operator < en caso contrario.
Cabe destacar que, si el elemento no proporciona por sí mismo operator <=> , pero es convertible implícitamente a un tipo comparable de tres vías, se utilizará esa conversión en lugar de operator < .
Ejemplo
#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 ("" "Comparar contenedores iguales:" && (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 && "Comparar contenedores diferentes:" && (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 && ""); }