Компилировать 14-код С++ с g++
Я использую g++ 4.8.4 на Ubuntu 14.04 LTS. При попытке скомпилировать с '-std = С++ 14', я получаю эту ошибку:
g++: error unrecognized command line option '-std=c++14'
Компиляция с '-std = С++ 11' отлично работает, поэтому я не уверен, что происходит. У g++ действительно нет поддержки для С++ 14? Я использую неправильный вариант командной строки?
Я использовал "sudo apt-get install g++", который должен автоматически получить последнюю версию, верно?
Ответы
Ответ 1
Для gcc 4.8.4
вам нужно использовать -std=c++1y
в более поздних версиях, похоже, начиная с 5.2
вы можете использовать -std=c++14
.
Если мы посмотрим на gcc онлайн-документы, мы найдем руководства для каждой версии gcc, и мы увидим, перейдя в "Диалект" для 4.9.3 в руководстве GCC 4.9.3, он говорит:
"C++ 1у
Следующая версия стандарта ISO С++, предварительно запланированная на 2014 год. Поддержка очень экспериментальная и почти наверняка изменится несовместимо в будущих выпусках.
Итак, до 4.9.3
вам пришлось использовать -std=c++1y
, а gcc 5.2 options сказать:
"C++ 14" C++ 1у
Стандарт ISO С++ 2014 плюс поправки. Имя "С++ 1y" устарело.
Мне непонятно, почему это указано в разделе Options Controlling C Dialect
, но именно так организованы документы.
Ответ 2
Флаг -std=c++14
не поддерживается в GCC 4.8. Если вы хотите использовать функции С++ 14, вам необходимо скомпилировать с помощью -std=c++1y
. Используя godbolt.org, кажется, что самая ранняя версия для поддержки -std=c++14
- это GCC 4.9.0 или Clang 3.5.0
Ответ 3
g++ поддерживает С++ 14 как через -std=c++14
, так и -std=c++1y
. Последнее было общим названием для стандарта, прежде чем было известно, в каком году он будет выпущен. В более старых версиях (включая ваши) только последний принимается, поскольку год выпуска еще не был известен, когда эти версии были выпущены.
Я использовал "sudo apt-get install g++", который должен автоматически получить последнюю версию, верно?
Он устанавливает последнюю версию, доступную в репозиториях Ubuntu, а не последнюю версию, которая существует.
Последняя версия GCC - 5.2.