#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;
}
C'est a::LOCAL_A
ce que l'énumération fortement typée essaie de réaliser, mais il y a une petite différence: les énumérations normales peuvent être converties en type entier, tandis que les énumérations fortement typées ne peuvent pas le faire sans un cast.
Alors, existe-t-il un moyen de convertir une valeur enum fortement typée en un type entier sans conversion? Si oui, comment?