The enum
feature of C/C++ is far from new. It is very useful for defining a specific set of values that a simple integer may take, which can lead to clearer, more concise code when used appropriately. Many compilers are capable of warning about common errors associated with enum
use, such as not including case
statements for all possible enum
values in a switch
statement that has no default
clause. In many respects, an enum
acts like a set, but being essentially just a glorified int
, it lacks any of the container features of something like std::set
.
The developer typically faces a tradeoff between performance and functionality when deciding between an enum
or some kind of set-like container. There are some (often common) situations, however, where an enum
can still be treated like a container, thanks to features made available in C++11.
Read more