How can I output the value of an enum class in C++11

Unlike an unscoped enumeration, a scoped enumeration is not implicitly convertible to its integer value. You need to explicitly convert it to an integer using a cast: std::cout << static_cast<std::underlying_type<A>::type>(a) << std::endl; You may want to encapsulate the logic into a function template: template <typename Enumeration> auto as_integer(Enumeration const value) -> typename std::underlying_type<Enumeration>::type { return … Read more