Какие новые фичи C++ появились в GCC 14
Новости Отредактировано
Не так давно вышла новая версия GNU Compiler Collection — GCC 14.1. Обновление принесло немало новшеств, призванных улучшить компилятор и исправить ошибки Вот самые интересные новые функции для языка C++, появившиеся в этой версии компилятора.
933 открытий13К показов
7 мая вышла новая версия GNU Compiler Collection (GCC) 14.1. Как и в каждом крупном выпуске, GCC 14 приносит множество нововведений, улучшений и исправлений ошибок.
Вот самые интересные новые функции для языка C++, появившиеся в этой версии компилятора.
Поддержка C++26
Бесконечные циклы без неопределенного поведения
В C++26, как и в C, теперь разрешены тривиальные бесконечные циклы. Это изменение устраняет неопределенное поведение, которое возникало при написании низкоуровневого кода. Например, следующий код больше не вызывает такового:
Статическое хранение для braced-инициализаторов
Теперь компилятор может оптимизировать код, использующий std::initializer_list
, уменьшая количество вызовов memcpy
для копирования массивов. Это позволяет размещать массивы в статической памяти.
Неоцененные строки
GCC 14 поддерживает P2361R6, добавляющий понятие неоцененных строк.
Такие строки не используются во время выполнения программы и не конвертируются в исполняемую кодировку, что предотвращает использование числовых escape-последовательностей.
Constexpr cast from void*
Фича P2738R1 позволяет выполнять кастинг из void*
в constexpr
коде, что упрощает использование различных трюков с type erasure
.
Пользовательские сообщения в static_assert
Теперь можно использовать статические утверждения с пользовательскими сообщениями, что делает диагностику ошибок более удобной:
Поддержка C++23
Deducing this
Эта долгожданная функция позволяет добавлять явный параметр this
к нестатическим членам функций, что упрощает их перегрузку и уменьшает дублирование кода:
CTAD от наследуемых конструкторов
GCC 14 теперь поддерживает P2582R1, что позволяет использовать аргумент-вывод для шаблонных классов с наследуемыми конструкторами.
Интересуетесь новыми возможностями и языками программирования? Возможно, позиция Golang-разработчика (Deckhouse) в компанию Флант будет для вас вариантом применить свои знания на практике и участвовать в разработке инновационных проектов
933 открытий13К показов