#include <iostream>
struct a {
enum LOCAL_A { A1, A2 };
};
enum class b { B1, B2 };
int foo(int input) { return input; }
int main(void) {
std::cout << foo(a::A1) << std::endl;
std::cout << foo(static_cast<int>(b::B2)) << std::endl;
}
O a::LOCAL_A
é o que o enum fortemente digitado está tentando alcançar, mas há uma pequena diferença: enums normais pode ser convertido em tipo inteiro, enquanto enums rigidez não pode fazê-lo sem um elenco.
Portanto, existe uma maneira de converter um valor de enumeração fortemente tipado em um tipo inteiro sem uma conversão? Se sim, como?