我很难弄清楚为什么 GCC 4.5 不允许我编译这个:
#include <iostream>
#include <bitset>
#define WIDTH 512
#define HEIGHT 512
#define CEIL_POS(X) ((X - (unsigned int)(X)) > 0 ? (unsigned int)(X + 1) : (unsigned int)(X))
int main ()
{
const unsigned int length = static_cast<const unsigned int>(CEIL_POS(static_cast<float>(WIDTH * HEIGHT) / 8.0));
std::bitset<length> bits;
return 0;
}
它在 VS2010 中运行良好。我错过了什么?
更新:我很着急,我没有粘贴整个代码。对于那个很抱歉 :(
PS:正如标题所说,我收到的错误是:“长度不能出现在常量表达式中。”