New C++ features in GCC 15
a year ago
- #GCC
- #Compiler
- #C++
- GCC 15.1预计将于2025年4月或5月发布
- GCC 15将成为Fedora 42的系统编译器,并通过Red Hat GCC工具集在RHEL中提供
- GCC 15的默认方言仍为-std=gnu++17,同时支持C++23和C++26特性选项
- GCC 15中的C++26特性包括包索引、结构化绑定的属性增强以及对删除函数的扩展支持
- 包索引允许直接访问可变参数模板包中的元素
- 现在可以将属性应用于结构化绑定
- 删除函数现在支持通过=delete("原因")添加说明信息
- 可变参数友元允许在友元声明中使用参数包
- C++26现在支持constexpr placement new操作
- 结构化绑定现在可用于if和while等条件语句
- C++26中删除不完整类型的指针现在属于无效操作
- 牛津式可变参数逗号用法(前置逗号省略)已被弃用
- 数组比较在C++26中现属于非法操作
- C++26引入了用于包含二进制数据的#embed指令
- GCC 15已修复多个缺陷报告
- 基于范围的for循环现在能正确延长临时对象的生命周期
- 限定名称查找失败会在模板解析阶段更早被诊断
- 已移除对Concepts TS的支持,需迁移至C++20概念
- 新增编译器选项如-fassume-sane-operators-new-delete和-Wheader-guard
- 改进了模板密集型代码的编译时速度
- 新增flag_enum等属性及-Wself-move、-Wdefaulted-function-deleted等警告