格式化库 (C++20)

来自cppreference.com
< cpp‎ | utility
 
 
工具库
通用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)(C++20)(C++20)
(C++20)
swap 与类型运算
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
常用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
初等字符串转换
(C++17)
(C++17)
 
格式化库
格式化函数
(C++20)
(C++20)
(C++20)
(C++20)
格式化器
(C++20)
格式化参数
格式错误
 

文本格式化库提供 printf 函数族的安全且可扩展的替用品。有意使之补充既存的 C++ I/O 流库并复用其基础设施,例如对用户定义类型重载的流插入运算符。

示例:

#include <format>
#include <cassert>
int main() {
    std::string message = std::format("The answer is {}.", 42);
    assert( message == "The answer is 42." );
}

格式化函数

(C++20)
在新 string 中存储参数的格式化表示
(函数模板)
(C++20)
通过输出迭代器写其参数的格式化表示
(函数模板)
通过输出迭代器写其参数的格式化表示,不超出指定的大小
(函数模板)
确定存储其参数的格式化表示所需的字符数
(函数模板)

扩展性支持与实现细节

(C++20)
std::format 的使用类型擦除的参数表示的非模板变体
(函数)
std::format_to 的使用类型擦除的参数表示的非模板变体
(函数模板)
提供对用户定义格式化器的格式化参数的访问的类模板
(类模板)
(C++20)
定义给定类型的格式化规则的类模板
(类模板)
格式化字符串分析器状态
(类模板)
格式化状态,包括所有格式化参数和输出迭代器
(类模板)
用户定义格式化器的参数观览接口
(函数模板)
创建引用所有格式化参数的类型擦除对象,可转换到 format_args
(函数模板)
提供对所有格式化参数的访问的类
(类模板)
格式化错误时抛出的异常类型
(类)

注解

功能特性测试
__cpp_lib_format

缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
P2418R2 C++20 既不可 const 格式化又不可复制的对象(例如 generator 式的对象)不可格式化 允许格式化这些对象(放松格式化器要求)