根据我之前阅读的理解,数组大小需要是常量并且在编译时已知,但 g++ 提供的支持 VLA 的附加支持除外。
然而,我正在阅读一份 C++ 草案,现在我很困惑,C++ 是否支持运行时数组边界。他们给出了以下定义数组的代码示例。
C++ 草稿链接:http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3690.pdf
第 8.3.4 节
例如:
void f(unsigned int n) {
int a[n]; // type of a is “array of runtime bound of int”
}
最佳答案
不,C++ 过去和现在都不支持具有运行时大小的数组。 N3690 是 C++11 和 C++14 之间的草案,其中包含提案 N3639 Runtime-sized arrays with automatic storage duration (revision 5) 中的文本。
该提案最终被废弃并在 C++14 draft N4140 中文本已被删除。
在查看草稿时,您可以将其用作“标准”的是
关于c++ - 根据 C++ 草案,运行时数组在堆栈上的界限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60566659/