GNU++20 вместо GNU++17. Главный компилятор Linux меняет правила игры для миллионов программистов

GNU++20 вместо GNU++17. Главный компилятор Linux меняет правила игры для миллионов программистов

Что нужно знать о новом стандарте в GCC 16.

image

Разработчики GCC включили стандарт C++20 в качестве значения по умолчанию в ветке будущего релиза GCC 16. Теперь при компиляции C++ кода без явного указания стандарта компилятор использует GNU++20 вместо прежнего GNU++17.

Накануне в репозитории GCC был принят коммит, который переключает стандарт по умолчанию на C++20/GNU++20 вместо C++17. После этого разработчики занялись устранением несовместимостей в собственном коде компилятора. В процессе подготовки выяснилось, что часть внутренней кодовой базы еще не была полностью готова к новым требованиям языка, поэтому на этой неделе в GCC активно вносятся исправления, устраняющие проблемы с C++20.

Работы по переходу идут уже на стадии stage 3 цикла разработки GCC 16, а стабильный релиз GCC 16.1 планируется весной 2026 года, ориентировочно в марте или апреле. Изменение стандарта по умолчанию может вызвать сбои сборки в проектах, которые пока не готовы к C++20 и полагаются на настройки компилятора по умолчанию. Разработчикам таких кодовых баз рекомендуют либо адаптировать их под C++20, либо явно фиксировать использование C++17 с помощью флага компиляции "-std=c++17".

Предыдущий крупный переход произошел в 2020 году, когда в GCC 11 стандарт по умолчанию был изменен с C++14 на C++17.