Hasty Briefsbeta

双语

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等警告