ExpertiDict

C++ · Essencial · Inglês · Técnico

enum class

ˈiːnʌm klæssubstantivo

Enumeração com escopo e tipagem forte. Os valores ficam dentro do nome do enum e não convertem implicitamente para inteiro, evitando colisões e comparações erradas.

Onde usar

Substitui o enum clássico em código novo. Em code review, pede-se trocar enums globais por enum class, e o tipo subjacente pode ser fixado para serialização.

Em código

enum class Cor : char { Verde, Azul };
Cor c = Cor::Azul;
// int n = c;  // erro: sem conversão
int n = static_cast<int>(c);

Exemplos

Switch to enum class so the values don't leak into the global scope.

Troque para enum class para os valores não vazarem para o escopo global.

You need a static_cast to convert an enum class to int.

Você precisa de um static_cast para converter enum class em int.

Cuidado

Não espere conversão automática para int: use static_cast ou, no C++23, std::to_underlying.

Sinônimos

enumeração com escopo

Veja também

Todos os termos de C++