c++ - 在 visual studio 2015 cmake 中启用 c++14

标签 c++ visual-studio-2015 cmake c++14

我想在堆栈上有一个动态大小的数组。 我有以下代码

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/

相关文章:

c++ - 生成随机大小写字母背后的逻辑

visual-studio - VS 2013给出的操作无法完成。 Razor View 上的指针无效

c# - Sqlserver.exe 已停止工作

c++ - 如何在 CMake 中将 OpenBLAS 定义为子目录?

c++ - 跟进。是否定义了对 x++ 的返回引用?

c++ - 模板 : get proper variable name from type name

java - 在使用命名空间 std 的 C++ 头文件上运行 SWIG 时缺少分号错误

c++ - 如何设置 XAudio2 dll 版本

visual-c++ - 如何使用 CMake 在 Visual Studio 2017 RC1 中设置环境变量?

c++ - CMake handle 是否也包含路径内容?