Ошибка: петли for для диапазона не допускаются в режиме C++98

Поэтому я следую учебным пособиям на этой странице: http://www.cplusplus.com/doc/tutorial/control/ Но у меня возникают проблемы при создании цикла range / based for. Я нашел эту страницу: Обновление компилятора GNU GCC Там ответ говорит, что я должен открыть "Проект" и "Свойства". Но когда я пытаюсь это сделать, опция "Свойства" отображается серым цветом без объяснения причин: http://imageshack.com/a/img571/4371/xd1x.png Итак... как я могу активировать диапазон / на основе циклов?

9 ответов

Проходить -std=c++11 флаг для компилятора. Конечно, GCC должен быть достаточно свежим (>=4,7), чтобы поддерживать все эти современные стандарты. Для CodeBlocks 13.12: Настройки -> Компилятор -> Вкладка "Флаги компилятора" -> Опция "Пусть g++ следует C++11 ISO C++ [-std= C++11]"

Dev-Cpp 5.11 Проще говоря, вы можете нажать на Инструмент> Опция компилятора> Настройка> Генерация кода> и выбрать язык последней опции (ISO C++ 11).

Выше приведено решение с использованием -std=c++11 не работал для меня

Это цель и версия версии моего компилятора.
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) Target: x86_64-linux-gnu

Когда я попытался, это то, что случилось.
$ g++ -std=c++11 program.cpp cc1plus: error: unrecognized command line option ‘-std=c++11’

Это решило проблему для меня.
$ g++ -std=c++0x program.cpp

Если вы столкнулись с этой ошибкой в Code::Blocks, это может вам помочь -

Нажмите Настройки -> Компилятор -> Настройки компилятора -> Флаги компилятора.

В разделе "Общие" установите [✓] флажок рядом:g ++ должен следовать стандарту языка C++11 ISO C++ [-std= C++11]

Проверьте изображение для справки

Обе эти:

g++ -std=c++11 -o test_executable test_source.cpp
g++ -std=c++0x -o program program.cpp

работал на меня.

Единственное, что нужно сделать после компиляции, это выполнить test_executable (в первом случае) как ./test_executables или программа (во втором случае) как ./program,

Если вы используете QT5.5, вы можете достичь этого, добавив следующие строки в .pro файл.

CONFIG += c++11

Используя вышеуказанное решениеg++ -std=c++0x program.cppработает. Однако команду необходимо немного изменить, чтобы запустить программу с помощью общей команды:./program

я использовалg++ -std=c++0x -o program program.cppи все работало отлично.

в первый раз, если у вас есть Dev-C++C:\Program Files (x86)\Dev-Cpp\MinGW64\bin, вы должны добавить этот маршрут к пути, а затем использовать следующую команду в cmd.

g++ -std=c++11 -o outprogram code_source.cpp

эту команду в каталоге вашего проекта.

Лучшее решение - сделать это в Dev C++:

  1. Перейдите к опции "Инструменты"
  2. Выберите "Параметры компилятора"
  3. Нажмите "Настройки"
  4. Нажмите "Генерация кода".
  5. Перейдите в "Выбрать язык" и выберите "ISO C++11".

Тогда ваша проблема решена.

Другие вопросы по тегам