enum class A; // defaults to int enum B :int; enum C; fooA(A); FooB(B); FooC(C); fooA((A)0); fooB((B)0); fooC((C)0); // error
Enums in GCC do always default to int or unsigned int, unless -fshot-enums is used which is ABI breaking.
Probably I was misremembering this combination of the int ABI and the forward declaring extension.
Enums in GCC do always default to int or unsigned int, unless -fshot-enums is used which is ABI breaking.
Probably I was misremembering this combination of the int ABI and the forward declaring extension.