Подтвердить что ты не робот

Ошибка С++ "nullptr не была объявлена ​​в этой области" в Eclipse IDE

Я запускаю Eclipse Helios, и у меня установлен g++ - 4.6. Надеюсь, я не ошибаюсь, что g++ 4.6 реализует возможности С++ 11. Я создал проект С++, который использует ключевые слова nullptr и auto. Конструкция дает следующие ошибки: -

../{filename}.cpp:13:13: error: ‘nullptr’ was not declared in this scope

../{filename}.cpp:14:2: warning: ‘auto’ will change meaning in C++0x; please remove it [-Wc++0x-compat]

На самом деле он строился до вчерашнего дня. Я получаю их из ниоткуда сегодня. Пожалуйста, помогите мне решить эту проблему.

4b9b3361

Ответ 1

Наконец, выяснилось, что делать. Добавлен аргумент компилятора -std = С++ 0x в разделе "Свойства проекта" → C/С++ Build → Settings → Компилятор GCC С++ → Разное. Он работает сейчас!

Но как добавить этот флаг по умолчанию для всех проектов на С++? Кто-нибудь?

Ответ 2

Согласно странице GCC для С++ 11:

Чтобы включить поддержку С++ 0x, добавьте параметр командной строки -std = С++ 0x в вашу командную строку g++. Или, чтобы включить расширения GNU в дополнение к расширениям С++ 0x, добавьте -std = gnu ++ 0x в вашу командную строку g++. GCC 4.7 и более поздние версии поддерживают -std = С++ 11 и -std = gnu ++ 11.

Скомпилирован ли с помощью -std=gnu++0x?

Ответ 3

Является ли это фактической ошибкой компилятора или ошибкой анализа кода? Несколько раз анализ кода может быть немного отрывочным и сообщать о недействительных ошибках.

Чтобы отключить анализ кода для проекта, щелкните правой кнопкой мыши на своем проекте в Проводнике проектов, нажмите "Свойства", затем перейдите на вкладку "Общие" C/С++, затем "Анализ кода". Затем нажмите "Использовать параметры проекта" и отключите те, которые вы не хотите.

Кроме того, вы уверены, что компилируете компилятор С++ 11?

Ответ 4

Перейдите в Настройки → Компилятор... И добавьте флаг "Have g++ следуйте следующему стандарту языка С++ 0x ISO С++ [std = С++ 0x]

Ответ 5

Вы используете версию g++ 4.6, вы должны вызывать флаг -std = С++ 0x для компиляции

g++ -std = С++ 0x *.cpp -o output

Ответ 6

Я добавляю ", -std = С++ 0x" после "-c -fmessage-length = 0" в разделе "Свойства проекта" → C/С++ Build → Settings → Компилятор GCC С++ → Разное. Не забывайте добавлять запятую "," в качестве разделителя.