C++23

C++23，正式名称ISO/IEC 14882:2024，是继C++20之后的C++编程语言开放标准。2020年2月，在布拉格举行的C++20最终会议上，通过了C++23的总体计划。第一次针对C++23的WG21会议原定于2020年6月在瓦尔纳举行，但由于2019冠状病毒病疫情而被迫取消。原定于2020年11月在纽约召开的会议也被取消。 该标准于2023年2月由WG21在伊瑟阔举行的混合会议上从技术上最终确定。

 新的“Hello, world”示例 
C++23引入了一些新功能，新的Hello, world程序示例如下：
#include <print>

int main()
{
    std::println("Hello, world!");
}

 特性 
被接受纳入 C++23 的变更包括：

 语言特性 
 显式 this 对象参数
if consteval
 多维下标运算符
 静态调用运算符、静态下标运算符和静态 lambda
 简化隐式移动（implicit move）
auto(x) 与 auto{x} 初始化
 新的预处理指令：
#elifdef 与 #elifndef
#warning
 在基于范围的 for 循环中延长某些临时对象的生命周期
 新的标准属性 [[assume(expression)]]
 继承构造函数的类模板参数推导
 复合语句（compound statement）末尾的标签（label）
 初始化语句（init-statement）中允许别名声明（alias declaration）
 为 std::size_t 及其对应有符号类型添加字面量后缀
 扩展浮点类型及其字面量（有条件支持）
 允许可选省略零参数 lambda 表达式中的 ()
 Lambda 表达式上的属性支持
constexpr 相关改动：
 在 constexpr 函数中允许非字面量变量、标签（label）与 goto 语句
 允许在 constexpr 函数中使用 static 和 thread_local 变量（只要可用于常量表达式）
constexpr 函数不再要求返回类型与参数类型是字面量类型
 现在可以编写即使没有任何调用符合核心常量表达式要求的 constexpr 函数
 将 static_assert 和 if constexpr 中的上下文收窄转换（contextual conversion）收窄到 bool
 在行拼接（line splicing）之前修剪空白字符
 强制声明顺序决定内存布局
 分隔的转义序列（delimited escape sequences）
 命名的通用字符转义（named universal character escapes）
 文本编码相关变化：
 支持将 UTF-8 作为可移植的源文件编码
 字符字面量编码一致性
 字符集与编码相关说明

 标准库 
 标准库模块支持 
标准库 模块 std 和 std.compat

 协程库支持 
用于范围的同步协程 std::generator

 通用工具支持 
结果类型 std::expected
为 std::optional 和 std::expected 添加单子操作
用于获取枚举底层值的工具函数 std::to_underlying
仅可移动的可调用包装器 std::move_only_function
std::forward_like
std::invoke_r
std::bind_back
std::byteswap
std::unreachable：标记不可达代码的函数
使 std::tuple 与其他“类似元组”的对象兼容
为 std::reference_wrapper 提供 std::basic_common_reference 特化以生成引用类型
为 std::pair 的转发构造函数添加默认参数

 编译时支持 
对以下内容添加 constexpr 支持：
std::type_info::operator==
std::bitset
std::unique_ptr
部分 <cmath> 函数
std::to_chars 和 std::from_chars 的整型重载
元编程工具：
类型特性 std::is_scoped_enum、std::is_implicit_lifetime、std::reference_constructs_from_temporary 和 std::reference_converts_from_temporary
为比较概念添加仅可移动类型支持

 注释 

 另见 
C++
C++20
C++17
C++14
C++11

category:C++
Category:程式語言標準
Category:ISO标准化编程语言
Category:静态类型编程语言
Category:C++語言家族