我正在做这样的事情
类.hpp:
class Class {
private:
static const unsigned int arraySize;
int ar[arraySize+2];
};
类.cpp:
#include <Class.hpp>
const unsigned int arraySize = 384;
编译器(q++,基于 g++ 的 QNX OS 的 c++ 编译器)error: array bound is not an integer constant
在编译一个单元时给了我,包括Class.hpp
(不是在编译 Class.cpp 时)。
为什么这不起作用?我知道静态 const 成员可以用作数组绑定,由 C++ 标准保证(参见这个 anwser)。但是为什么编译器不将结果static const + const
视为常量呢?