在这里,我得到一个带有可变参数类参数的模板类,每个类都有一个来自枚举值的id,例如:
struct A
{
enum ETypeID
{
Value = 244
};
};
(其他一些类的模式相同)
现在我得到了:
template<typename TypeList...>
struct TClass
{
static int _IDs[sizeof(TypeList)...];
};
我无法弄清楚如何使用给定类型列表中的每个ETypeID::Value
来提供静态数组。
非常感谢任何帮助
答案 0 :(得分:3)
template<typename... TypeList>
struct TClass
{
constexpr static int _IDs[sizeof...(TypeList)] = {TypeList::Value...};
};
constexpr
数据成员初始化需要 static
sizeof...(TypeList)
评估TypeList...
包
对于TypeList = {A, B, C}
,TypeList::Value...
扩展为:A::Value, B::Value, C::Value