n3639提议通过c99的variable-length-array S的成C++ 14C++ 14中的可变长度数组?
但latest I've been able to find列表n3639如(至少对于所述第一尺寸。):在C的第一CD
特点++ 14,随后删除到一个技术规范
这是否曾经使它成为一个技术规范,或者它是否失去了手?
原因我的问题是,我发现这段代码:(使用“-pedantic”标志时)
void f(size_t n) {
int a[n];
for (size_t i = 0; i < n; ++i)
a[i] = 2 * i;
sort(a, a + n);
}
这种失败在Visual Studio 2015年在海湾合作委员会建立
Works fine下gcc5.1,但仍
fails to build的Visual Studio 2015下
这只是gcc的错误在C++ 14支持C99的变长数组或没有这在某种程度上使之成为C++ 14和Visual Studio 2015年失败d来捡起来?
编辑:它看起来像GCC有去除gcc6.2支持:
http://coliru.stacked-crooked.com/a/303ae1970fa3f5d2
自C++ 03或更早版本以来,它一直是GCC扩展。 –
GCC支持这个扩展。打开警告标志。或者更好的是,不要在C++中使用VLA。 – DeiDei
[已从标准中删除](https://gcc.gnu.org/projects/cxx-status.html) –