Assigning an Integer Value to an Enumeration

C++ doesn’t allow you to assign integer value to an enumeration directly:

 enum Direction (Up, Down};Direction dir;Dir=0; // error, can't assign int to enum type

However, you can use static_cast to explicitly cast an int value to an enumeration.

 dir=static_cast < Direction > (0); // OK< dir equals 'Up'

If the int value is beyond the valid ranges of the enumeration, the results are undefined. Therefore, use this technique with caution:

 dir=static_cast < Direction > (5); // undefined behavior

Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: