为什么g++;没有可变长度数组初始化 我使用C++ 11,这是一个示例代码片段,在那里我不能理解语言的内部工作。
这很有效-为什么g++;没有可变长度数组初始化 我使用C++ 11,这是一个示例代码片段,在那里我不能理解语言的内部工作。,c++,c++11,g++,C++,C++11,G++,这很有效- int main(){ int n; cin>>n; int a[n]; // THIS WORKS due the the extensions 但是,这不起作用- int main(){ int n; cin>>n; int a[n] = {0} // This does not work; 我使用以下方法编制此文件: g++ -std=c++0x file.cpp -o file 我知道VLA不是C++标准的一部分,GNU C++通过编译器扩展提供
int main(){
int n;
cin>>n;
int a[n]; // THIS WORKS due the the extensions
但是,这不起作用-
int main(){
int n;
cin>>n;
int a[n] = {0} // This does not work;
我使用以下方法编制此文件:
g++ -std=c++0x file.cpp -o file
我知道VLA不是C++标准的一部分,GNU C++通过编译器扩展提供它。
B显然可以让它工作。但是海湾合作委员会的人没有因为任何原因。我不认为追踪那些认为“足够好”的人是值得的。这在C中也是不合法的,扩展在很大程度上是为了与C兼容。实际上,g++(自4.9版起)在这里接受您的代码,您所说的“不工作”是什么意思?如果初始值设定项的长度数组的长度?@Marc,B给出了一个编译时错误-“a可能尚未初始化”行为似乎很快就会改变: