[英]CLion disable C++98 mode in favour of C++11
我正在尝试使用JetBrains CLion中的C ++ 11语法编译一些代码,所以我希望禁用C ++ 98模式。 我按照StackOverflow问题的说明进行操作,但无法使其正常工作。
为了实现这个目标,我去了ALT + SHIFT + F10并在程序参数中传递了参数-std=c++11
。
再次构建时,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%工作(它仍然是早期发布版本)? 或者我只是搞砸了,这里有用户错误吗?
谢谢!
这已通过将add_definitions(-std=c++11)
到CMakeLists.txt
的末尾而不是ALT + SHIFT + F10的命令行参数中来解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.