#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;
}
To a::LOCAL_A
jest to, co próbuje osiągnąć silnie typowane wyliczenie, ale jest mała różnica: normalne wyliczenia można przekonwertować na typ całkowity, podczas gdy silnie typowane wyliczenia nie mogą tego zrobić bez rzutowania.
Czy jest więc sposób na przekonwertowanie wartości wyliczenia o jednoznacznie określonym typie na typ całkowity bez rzutowania? Jeśli tak, w jaki sposób?