У меня проблемы с флагами компилятора на Code :: blocks. Новичок в программировании - PullRequest
0 голосов
/ 04 января 2019

Я новичок в программировании, учусь на книге "C ++ для чайников".

В начале книги мне предлагается выбрать 3 флага компилятора в настройках компилятора.

  1. Включить дополнительные настройки компилятора
  2. Пусть g ++ будет следовать грядущему стандарту языка C ++ 0x ISO C ++
  3. Пусть g ++ следует стандарту языка C ++ 11ISO C ++.

Я могу выбрать первый вариант без проблем. Однако с опциями 2 g ++ я могу выбрать только один из них.

Есть ли способ, которым я мог бы выбрать оба, нет ошибок, пока я учусь вне книги?

1 Ответ

0 голосов
/ 04 января 2019

TL; DR * * 1001 Выберите C ++ 11, и все будет в порядке. Все они являются языковыми стандартами, поэтому вы можете выбрать только один из них. Кроме того, стандарты языка C ++ обратно совместимы, это означает, что использование более нового стандарта (C ++ 14, который является стандартом, распространенным в 2014 году, отсюда и название) всегда будет включать в себя прежние стандарты. (Обратите внимание, что есть несколько исключений, таких как устаревшие. Но вам не нужно беспокоиться об этом, поскольку устаревшие, скорее всего, имеют замены, и компилятор также предупредит вас) Теперь вернемся к тому, почему вы не можете скомпилировать с C ++ 11 и C ++ 0x C ++ 0x похож на черновую версию C ++ 11, если после C ++ вы видите какие-либо английские символы, они скорее будут черновым стандартом, чем официальными стандартами. Нет особой причины использовать C ++ 0x, а не C ++ 11. Поскольку все стандарты, скорее всего, обратно совместимы, оснований для компиляции в более старом стандарте нет. Конечно, вы можете спросить, почему не всегда компилировать в более новой версии? Причина в том, что не все компиляторы внедрили новые стандарты. Поэтому, если вам нужна обратная совместимость с компилятором, выберите более старый стандарт, такой как C ++ 98 (выпущен в 1998 году). В противном случае, я лично рекомендую компилировать в более новые стандарты или, по крайней мере, C ++ 11. Для получения дополнительной информации о C ++ Language Standards вот страница вики для вас: https://en.wikipedia.org/wiki/C%2B%2B#Standardization Также, если вы хотите узнать больше о C ++, справочное руководство можно найти здесь: https://en.cppreference.com/w/

...