C++ doesn't allow you to assign integer value to an enumeration directly:
enum Direction (Up, Down};
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