C++ c++;标准支持非常量数据成员作为数组边界?
请参阅以下代码:C++ c++;标准支持非常量数据成员作为数组边界?,c++,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++标准中找到任何支持它的描述。它是编译器的扩展内容吗?我在哪
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++标准中找到任何支持它的描述。它是编译器的扩展内容吗?我在哪里可以找到一些关于它的描述?< /P> < P>不,C++标准不支持< P>不,C++标准不支持< p>编译器正在尝试使用非标准特征。
坦白地说,我发现它甚至不总是正常工作。不确定为什么会出现这种情况,但我学会了避免这种情况。您的编译器正在尝试使用非标准功能 坦白地说,我发现它甚至不总是正常工作。不知道为什么会这样,但我学会了避免它。可能的重复