[
Example 3:
enum color { red, yellow, green=20, blue };
color col = red;
color* cp = &col;
if (*cp == blue)
makes
color a type describing various colors, and then declares
col as an object of that type, and
cp as a pointer to an
object of that type
. The possible values of an object of type
color are
red,
yellow,
green,
blue; these values can be converted to the integral values
0,
1,
20, and
21. Since enumerations are
distinct types, objects of type
color can be assigned only
values of type
color. color c = 1;
int i = yellow;
Note that this implicit enum to int
conversion is not provided for a scoped enumeration:
enum class Col { red, yellow, green };
int x = Col::red;
Col y = Col::red;
if (y) { }
—
end example]