CLion отключить режим C ++ 98 в пользу C ++ 11

Я пытаюсь скомпилировать некоторый код, используя только синтаксис C ++ 11 в JetBrains CLion, поэтому я хочу отключить режим 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 Interface

То, что я представляю, это строка компиляции (согласно комментариям):

C:\cygwin64\bin\cmake.exe --build C:\Users\Zarthus\.clion10\system\cmake\generated\6dd8bed\6dd8bed\Debug --target testProject -- -j 4

Так что, похоже, он не включает мой контент.

У меня нет большого опыта работы с другими IDE JetBrains, но, насколько я могу судить, они в основном одинаковы.

Кто-нибудь может воспроизвести это? Должен ли я отправить отзыв JetBrains о том, что это может не работать на 100% (это все еще ранняя сборка)? Или я просто испортил это и есть ли здесь ошибка пользователя?

Спасибо!

6

Решение

Это было решено путем добавления add_definitions(-std=c++11) до конца CMakeLists.txt вместо аргументов командной строки ALT + SHIFT + F10.

8

Другие решения