40 template<typename T, typename = typename std::enable_if<std::is_enum<T>::value,
T>
::type>
43 static std::map<T, std::string>
data;
52 template<typename T, typename = typename std::enable_if<std::is_enum<T>::value,
T>
::type>
57 throw std::runtime_error(
"no string for enum with value '" + std::to_string(
static_cast<size_t>(e)) +
"'.");
72 template<typename T, typename = typename std::enable_if<std::is_enum<T>::value, T>
::type>
83 throw std::runtime_error(
"no enum value for string `" + str +
"` available.");
94 template<typename T, typename = typename std::enable_if<std::is_enum<T>::value, T>
::type>
114 template<typename T, typename = typename std::enable_if<std::is_enum<T>::value, T>
::type>
135 template<typename T, typename = typename std::enable_if<std::is_enum<T>::value, T>
::type>
T enum_from_string(const std::string &str)
bool is_valid_enum(const std::string &str) noexcept
std::ostream & operator<<(std::ostream &os, T e)
std::string enum_to_string(T e)
static std::map< T, std::string > data