When the value assigned to an enumerator falls outside the range an signed integer (int) you'll have to specify a different base-type.

This won't compile:
Code:
enum Range { A = 3000000000 };
This will:
Code:
enum Range : long { A = 3000000000 };
- petter