CLion禁用C++ 98模式而支持C++ 11

Zar*_*hus 6 c++ ide c++11 clion

我正在尝试使用JetBrains CLion中的C++ 11语法编译一些代码,所以我希望禁用C++ 98模式.我按照StackOverflow问题的说明进行操作,但无法使其正常工作.

为了实现这个目标,我去了ALT + SHIFT + F10并-std=c++11Program 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)
                                ^
Run Code Online (Sandbox Code Playgroud)

在代码中

Command::Command(std::vector<std::string> cmds)
{
    for (std::string command : cmds)
    {
         addCommand(command);
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然我很确定问题不在我的代码中(IdeoneC++ 11IdeoneC++ 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
Run Code Online (Sandbox Code Playgroud)

因此它似乎不包括我的内容.

我对其他JetBrains IDE没有很多经验,但据我所知,它们大致相同.

有人能够重现这个吗?我是否应该向JetBrains发送反馈意见,这可能不是100%工作(它仍然是早期发布版本)?或者我只是搞砸了,这里有用户错误吗?

谢谢!

Zar*_*hus 8

这已通过添加add_definitions(-std=c++11)CMakeLists.txtALT + SHIFT + F10的命令行参数的末尾而得到解决.