#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;
}
Questo a::LOCAL_A
è ciò che l'enum fortemente tipizzato sta cercando di ottenere, ma c'è una piccola differenza: gli enum normali possono essere convertiti in tipo intero, mentre gli enum fortemente tipizzati non possono farlo senza un cast.
Quindi, c'è un modo per convertire un valore enum fortemente tipizzato in un tipo intero senza cast? Se si, come?