【发布时间】:2016-11-18 14:09:09
【问题描述】:
我想对枚举有一个包装器,这将使我有机会将其转换为字符串,反之亦然。
基类如下:
template<typename TEnum>
class StringConvertedEnum {
public:
static std::string toString(TEnum e);
static TEnum toEnum(std::string &str);
protected:
static const std::map<std::string, TEnum> _stringMapping;
static const std::map<TEnum, std::string> _enumMapping;
};
然后我想要这样的东西:
class Category : public StringConvertedEnum<Category::Enum> {
public:
enum Enum {
Category1,
Category2,
OTHER
};
};
但是目前它没有通过这个错误编译:
incomplete type 'enums::Category' used in nested name specifier
如何解决这个问题?
【问题讨论】:
-
@YSC:我认为这是一个相关的阅读,但不完全是重复的。
标签: c++ c++11 enums c++14 crtp