请参阅以下代码:
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++ 标准中找不到任何支持它的描述。它是编译器的扩展内容吗?我在哪里可以找到关于它的一些描述?