【发布时间】:2015-01-28 18:33:06
【问题描述】:
为什么编译器(VC++)不允许(错误C2975)
const int HASH[] = {24593, 49157};
bitset<HASH[0]> k;
我能做些什么来克服这个问题(用数组中的常量值初始化模板)?
【问题讨论】:
-
那么错误
C2975是什么?并非所有人都对 VC++ 编译器错误了如指掌。 -
另外,请尝试使用
constexpr而不是const。 -
msdn.microsoft.com/en-us/library/kyf0z2ka.aspx - 基本上它说常量表达式应该出现在尖括号内。
-
这真的是你想做的吗,顺便说一句?也就是说,创建一个 24593 位的
std::bitset<N>?您的意思是使用std::bitset<std::numeric_limits<int>::digits> k(HASH[0]);也不会遇到您看到的问题吗?
标签: c++ arrays templates visual-c++ constants