Какой статус поддержки С++ 17 в GCC?
Clang имеет приятную страницу, описывающую статус проекта w.r.t. С++ 1z/С++ 17 (и С++ 11 и С++ 14, это одна и та же страница).
g++ имеет страницу с функциями С++ 14, но я ничего не мог найти о С++ 17/С++ 1z. Это работает, но просто не присутствует в Интернете? Для версии 5.0?
Ответы
Ответ 1
Обновленный окончательный краткий ответ:
- GCC 8.x (и более поздние версии) полностью поддерживает все С++ 17.
- GCC 7.x поддерживает все С++ 17, за исключением вывода аргументов шаблона класса.
- GCC 6.x (и более ранние версии) практически не поддерживает возможности С++ 17.
Спасибо @JanVanDijk за ссылку на полную таблицу функций.
Ответ 2
На сегодняшний день поддержка языка gcc С++ 1z отслеживается на: https://gcc.gnu.org/projects/cxx1z.html. Для статуса С++ 1z libstdС++ см. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.201z.
Ответ 3
Уже есть поддержка; Следующие два резюме ориентированы на список Clang:
Поддерживается (по состоянию на 5 июля 2015 года):
-
auto
для параметров функции поддерживается с 4.9. Эта функция в настоящее время считается расширением, но включена в предложение концепций и называется "общие функции".
- Триграфы игнорируются по умолчанию начиная с 5.1.0
-
typename
для параметров шаблона шаблона начиная с 5.1.0
- новые правила вывода для инициализации direct-list с версии 5.1.0
-
static_assert
без сообщения в HEAD
-
u8
символьные литералы в HEAD
- Атрибуты для пространств имен или перечислений в HEAD
Неподдерживается (по состоянию на 5 июля 2015 года, со ссылками на допустимое использование примера):
Для статуса реализации предложений библиотеки в libstdС++ в соответствующем руководстве есть список.
Ответ 4
В cppreference.com также есть таблица, содержащая список поддерживаемых функций для нескольких компиляторов.
http://en.cppreference.com/w/cpp/compiler_support