我想在堆栈上有一个动态大小的数组。 我有以下代码
int length = 0;
getLength(&someVar, &length);
char infoLog[length];
可是我做不到。 我最初是在 macOS 上开发代码的,编译它没有问题。 我做了一些研究,发现 c++14 支持这个,但我不确定如何在 CMake(或 VS2015 社区版)中打开它。
谢谢
编辑:正如 drescherjm 所展示的那样,它实际上并未添加到规范中。按照下面的答案做了。
最佳答案
不,C++14 不支持它。
尝试使用动态容器:
std::vector<char> infoLog(length);
如果您不想在创建后调整大小(因为 VLA 不允许),那么
auto infoLog = std::make_unique<char[]>(length);
两者都将使用堆空间来存储内容,并在变量 infoLog
离开范围时自动释放它。
关于c++ - 在 visual studio 2015 cmake 中启用 c++14,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40920790/