2 ms·
Well I misremembered it seems. You can use forward declared enum class or enum : <type> in C++ as per standard: enum class A; // defaults to int enum B :
by gpderetta 4y ago
Well I misremembered it seems. You can use forward declared enum class or enum : <type> in C++ as per standard:
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
but indeed GCC refuses plain enum. Forward declaring enums in C is an old GCC extension that still deosn't allow to pass them when incomplete;
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.