C++ · Essencial · Inglês · Técnico
enum class
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