1
是否可以使汇编时间Type -> Enum Series
映射?C++ - 映射类型枚举
用一个例子举例说明:
比方说,我有一些Type
和枚举值:
typedef int Type;
enum Enumerated { Enum1, Enum2, Enum3, Enum4 };
,现在我莫名其妙声明如下:“让我们与类型相关联Enum1
和Enum4
Type
(不知道如何实现这个)
现在,我希望能够检查以下(最好使用在编译时MPL完成):
如果一些任意类型和枚举实际上是被映射到对方:
template <typename ArbitraryType, Enumerated E>
struct check_at_compile_time {
// Somehow tricky evaluate this
static const bool value;
};
使结果如下:
check_at_compile_time<Type, Enum1>::value evaluates to TRUE
check_at_compile_time<Type, Enum2>::value evaluates to FALSE
check_at_compile_time<Type, Enum4>::value evaluates to TRUE
check_at_compile_time<int, Enum3>::value evaluates to FALSE
如果有人知道一个很好的方法来实现这一点,请帮助我。也许使用boost::mpl
,我不确定。
谢谢。