Ошибка: петли 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++:
- Перейдите к опции "Инструменты"
- Выберите "Параметры компилятора"
- Нажмите "Настройки"
- Нажмите "Генерация кода".
- Перейдите в "Выбрать язык" и выберите "ISO C++11".
Тогда ваша проблема решена.