“int size=10;”会产生一个常量表达式吗?
以下代码在GCC 4.8和Clang 3.2下编译:
int main(){
int size = 10;
int arr[size];}
8.3.4/1的C+标准指出,数组的大小必须是一个积分常量表达式,其中size
似乎不是。这是两个编译器中的一个bug,还是我遗漏了什么?
最新的VC+CTP拒绝使用以下有趣信息的代码:
error C2466: cannot allocate an array of constant size 0
有趣的是它似乎认为size
是零。但至少它拒绝了代码。GCC和Clang不应该这样做吗?