赞
踩
/** * @brief 枚举转字符串 * @tparam T 枚举类型 * @param s 枚举类型变量 * @return 字符串 */ template <typename T> inline QString EnumToString(T s) { // T是枚举类型,编译判断 static_assert(std::is_enum<T>::value, "T must be an enum type"); QMetaEnum meta = QMetaEnum::fromType<T>(); return meta.valueToKey(int(s)); } #ifndef E2S #define E2S(x) Utils::EnumToString<decltype(x)>(x) #endif // !E2S /** * @brief 字符串转枚举 * @tparam T 枚举类型 * @param s 字符串 * @return 枚举类型变量 */ template <typename T> inline T StringToEnum(const QString& s) { // T是枚举类型,编译判断 static_assert(std::is_enum<T>::value, "T must be an enum type"); QMetaEnum meta = QMetaEnum::fromType<T>(); return T(meta.keyToValue(s.toStdString().c_str())); } #ifndef S2E #define S2E(T, x) Utils::StringToEnum<T>(x) #endif // !S2E
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。