在Visual Studio 2015 Cmake中启用C 14

Enable c++14 in visual studio 2015 cmake

本文关键字:启用 Cmake Visual Studio 2015      更新时间:2023-10-16

我试图在堆栈上具有动态大小的数组。我有以下代码

int length = 0;
getLength(&someVar, &length);
char infoLog[length];

,但我做不到。我最初在MacOS上开发了代码,并且没有问题。我进行了一些研究,发现C 14支持了这一点,但我不确定如何在CMAKE中打开它(或在VS2015社区版中)。

谢谢

编辑:正如Drescherjm所显示的那样,实际上并未添加到规格中。根据下面的答案做到了吗?

no,C 14不支持它。

尝试使用动态容器:

std::vector<char> infoLog(length);

如果您不想在创建后允许调整大小(因为VLA没有),则

auto infoLog = std::make_unique<char[]>(length);

两者都将使用堆空间存储内容,并在变量infoLog离开范围时自动释放它。