我正在尝试在 JetBrains CLion 中使用仅限 C++11 的语法编译一些代码,因此我希望禁用 C++98 模式。我按照这个 StackOverflow question的说明进行操作,但无法正常工作。
为了实现这个目标,我去了 ALT + SHIFT + F10 并-std=c++11
在Program Arguments中传递了参数。
再次构建后,C++98 模式似乎仍处于启用状态。
/cygdrive/c/Users/Zarthus/Documents/test/command.cpp: In constructor 'Command::Command(std::vector<std::basic_string<char> >)':
/cygdrive/c/Users/Zarthus/Documents/test/command.cpp:25:32: error: range-based 'for' loops are not allowed in C++98 mode
for (std::string command : commands)
^
在代码中
Command::Command(std::vector<std::string> cmds)
{
for (std::string command : cmds)
{
addCommand(command);
}
}
虽然我相当确定问题不在我的代码中(IdeoneC++11与IdeoneC++98 (4.8.1))
图片:CLion 界面
我想象的是编译字符串(每条评论):
C:\cygwin64\bin\cmake.exe --build C:\Users\Zarthus\.clion10\system\cmake\generated\6dd8bed\6dd8bed\Debug --target testProject -- -j 4
所以它似乎没有包含我的内容。
我对其他 JetBrains IDE 的经验并不多,但据我所知,它们大多是相同的。
有人能重现这个吗?我是否应该向 JetBrains 发送反馈,说明这可能无法 100% 工作(它仍然是早期版本)?或者我只是把它搞砸了,这里有用户错误吗?
谢谢!