Каковы различия между -std = c ++ 11 и -std = gnu ++ 11?

Каковы различия между -std=c++11 и -std=gnu++11 качестве параметра компиляции для gcc и clang? Тот же вопрос с c99 и gnu99 ? Я знаю о стандартах C ++ и C, это различия в параметрах, которые меня интересуют.

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

Как вы выяснили, разница между двумя параметрами заключается в том, включены ли расширения GNU, которые нарушают / расширяют стандарт C ++ или нет. Расширения GNU C ++ описаны здесь . Вы также можете использовать большинство расширений GNU C (описанных здесь ) в своих программах на C ++. Было бы также полезно прочитать о опции -Wpedantic GCC здесь .

Обратите внимание, что некоторые расширения могут все еще действовать при использовании -std=c++11 , если они не противоречат стандарту. Например, при использовании компилятора MinGW мне нужны расширения для рабочего Boost.Lexical_Cast . Но, пока вы не используете никого из них, вам лучше придерживаться стандарта без расширений для максимальной переносимости. Это может пригодиться, если вы вынуждены сменить компилятор.

  • Scanf пропускает любой другой цикл while в C
  • Почему gcc разрешает передавать аргументы в функцию, определенную без аргументов?
  • Почему целочисленное переполнение на x86 с GCC вызывает бесконечный цикл?
  • gcc может скомпилировать вариационный шаблон, в то время как clang не может
  • Попытка понять параметр gcc -fomit-frame-pointer
  • Почему передача char ** как const char ** генерирует предупреждение?
  • Реализация C ++ 14 make_integer_sequence
  • Как установить gcj на Linux?
  • C ++ 11 Regex Matching
  • LD_LIBRARY_PATH против LIBRARY_PATH
  • Создание статической сборки Mac OS XC
  • Interesting Posts

    Как проверить, является ли строка числовой?

    Атрибут на интерфейсных элементах не работает

    Подключение к FTP-серверу FileZilla работает, но список каталогов не работает

    REFInd нужен код в MBR для загрузки окон на Mac?

    Что делает загрузочный носитель загрузочным?

    Как получить выбранный индекс RadioGroup в Android

    Замена кода котельной таблички – есть ли что-то плохое в этом коде?

    Разница между выключением и выключением.

    Что такое нормальная / безопасная температура для i7 2600K CPU?

    Как диагностировать ненормальное использование ЦП svchost.exe?

    Альтернатива использованию usbcopy для создания USB-накопителя Solaris Text Installer

    Какие типы стилусов будут работать на поверхности Microsoft?

    Ошибка AngularJS .success не является функцией

    Почему я не могу найти настольное приложение Java в Netbeans 7.1

    Почему моя программа работает медленнее, если вы перебираете ровно 8192 элементов?

    Давайте будем гением компьютера.