enum class

Applies to: cpp

An enum class defines a type whose values are a fixed set of named constants. It is type-safe (won't implicitly convert to int or mix with other enums) and scoped (Mode::Cruise), making it ideal for modes and states.

enum class Mode { Cruise, Avoid, Stop };
Mode m = Mode::Cruise;
if (m == Mode::Avoid) { /* ... */ }

See also: struct-vs-class