我遇到 C2057 错误(在 Visual Studio 2010 上),我不知道为什么。我知道要初始化堆栈上的数组,必须在编译时知道大小,这就是为什么需要使用 const 值的原因(至少在 Visual Studio 上,因为在 gcc 中不允许使用可变长度数组)。我的班级中有一个 const value 成员,我在初始化列表中定义了他的值。所以从技术上讲,这个值在编译时是已知的,对吧?我想了解为什么它不起作用?这是一个片段:
class Dummy
{
Dummy() : size(4096) {}
void SomeFunction()
{
int array[size]; //return C2057
//...
}
const unsigned int size;
};
谢谢