#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;
}
Das a::LOCAL_A
ist es, was die stark typisierte Aufzählung zu erreichen versucht, aber es gibt einen kleinen Unterschied: Normale Aufzählungen können in Ganzzahlentypen konvertiert werden, während stark typisierte Aufzählungen dies nicht ohne Umwandlung tun können.
Gibt es also eine Möglichkeit, einen stark typisierten Aufzählungswert in einen ganzzahligen Typ ohne Umwandlung umzuwandeln? Wenn ja, wie?