With C++11 we have std::underlying_type to get the integer type of an enum class. It feels like we should add the complementing std::underlying_value function to get the integer value for an enum class value.

I would suggest the following constexpr to get this value:

    template<typename T>
    constexpr auto underlying_value(T _enum_value)
        return static_cast<typename ::std::underlying_type<T>::type>(_enum_value);

(auto return type for brevity here)

Use cases:
1) Legacy codebases
2) Networking code / Serialization
3) Enum-value as array-indexing