This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Size of enumâ


2012/2/5 David Brown :
>
> Enum types in C++ can be any integer type big enough to cover the required
> range. ?I think most C++ compilers use the smallest integer type that covers
> the range.

With the three C++ compilers I tried enums are int-sized for
compatiblity reasons, so that enums declared in a header file included
by C code and C++ code will agree on the type layout.

C++11 allows you to fix the underlying type of an enum, to use a specific size:

enum E : unsigned char { E1, E2 };

The syntax isn't valid in C, so there's no reason to use the same
layout as a C enum would.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]