ExpertiDict

C++ · Avançado · Inglês · Informal

spaceship operator

ˈspeɪs.ʃɪp ˈɑː.pə.ɹeɪ.tɚoperador

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;  // false

Exemplos

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.

Veja também

Todos os termos de C++