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
,我不確定。
謝謝。