Состоялся релиз GCC 6.1 — набора свободных компиляторов с открытым исходным кодом. Основным новшеством стало применением в компиляторе C++ по умолчанию стандарта C++14 и улучшение экспериментальной поддержки C++17. Кроме того расширены средства диагностики, заявлена полная совместимость с OpenMP 4.5 и поддержка системной библиотеки musl. Также заявлено об улучшении поддержки платформ ARM и поддержке процессоров AMD Zen, Intel Skylake, IBM z13 и IBM POWER 9.
Основные изменения:
- Активировано по умолчанию для языка C++ использование стандарта C++14 (применяется режим
-std=gnu++14
вместо-std=gnu++98
). Кроме того добавлена поддержка расширения системы шаблонов C++ Concepts, активируемая опцией-fconcepts
. Реализованы некоторые новые элементы будущего стандарта C++17, такие как выражения fold, символьные литералы u8, расширенный static_assert и вложенное определение пространств имён. Реализована возможность вычисления констант для всех бестиповых аргументов шаблонов. Добавлена поддержка транзакционной памяти (C++ Transactional Memory) при сборке с опцией-fgnu-tm
; - Для runtime-библиотеки libstdc++ расширен набор специальных математических функций (ISO/IEC 29124:2010), добавлена экспериментальная поддержка стандарта C++17 (в том числе новые функции
std::size
,std::empty
,std::data
для контейнеров и массивов,std::uncaught_exceptions
,std::invoke
,std::shared_mutex
,std::void_t
иstd::bool_constant
), экспериментальная поддержка File System TS, экспериментальная поддержка второй версии Library Fundamentals TS, поддержкаstd::locale
для DragonFly и FreeBSD; - Появилась поддержка Си-библиотеки musl, которую можно использовать на Linux-системах с архитектурой AArch64, ARM, MicroBlaze, MIPS, MIPS64, PowerPC, PowerPC64, SH, i386, x32 и x86_64. Поддержка включается опцией
-mmusl
или при выборе архитектуры по маске*-linux-musl*
.