C++ · Avançado · Inglês · Informal
spaceship operator
Operador <=> do C++20, de comparação de três vias, que indica menor, igual ou maior. Com = default, o compilador gera todos os operadores de comparação.
Onde usar
Reduz as seis funções de comparação a uma linha por tipo, comparando os membros em ordem. Usado em structs de chave de map e em ordenação.
Em código
struct V {
int maior, menor;
auto operator<=>(const V&) const = default;
};
V a{1, 2}, b{1, 3};
bool x = a < b; // true
bool y = a == b; // falseExemplos
Default the spaceship operator and drop the other five.
Declare o spaceship operator como default e apague os outros cinco.
The spaceship returns a strong ordering for integers.
O spaceship devolve uma strong ordering para inteiros.
Cuidado
O resultado não é int: é um tipo como std::strong_ordering ou partial_ordering, que se compara com 0.
Sinônimos
comparação de três vias
Origem
O apelido vem do formato <=>, parecido com uma nave espacial.