1
参见以下代码:C++标准是否支持非常量数据成员作为数组边界?
class X {
int a;
public:
void foo() {
char arr[a]; // a is not a constant variable, but g++ doesn't report error, why?
}
};
我一直认为只有常量表达式可以以数组边界被使用,直到今天我遇到上面的奇怪的代码。 g ++和clang ++都可以成功编译它。但是我无法在C++标准中找到任何支持它的描述。它是编译器的扩展内容吗?我在哪里可以找到关于它的一些描述?
[在C++书籍中,数组绑定必须是常量表达式,但为什么下面的代码有效?](http://stackoverflow.com/questions/5947661/in-c-books-array-bound-must -BE-常数表达式 - 丁为什么最以下-COD) – 2013-04-05 11:12:41