I think enum classes are better than normal enums because their members aren't in a global namespace. (it wouldn't be possible to create a different enum with an IDLE state) http://www.cprogramming.com/c++11/c++11-nullptr-strongly-typed-enum-class.html