C++ 具名要求:基本格式化器 (BasicFormatter) (C++20 起)
来自cppreference.com
基本格式化器 (BasicFormatter) 是对给定的格式化参数类型及字符类型抽象格式化操作的类型。要求 std::formatter 的特化符合基本格式化器 (BasicFormatter) 的要求。
基本格式化器 (BasicFormatter) 若能格式化 const 与非 const 的实参,则它为格式化器 (Formatter) 。
要求
一个类型满足 基本格式化器 (BasicFormatter) ,若它为半正则,这表示它满足:
- 可默认构造 (DefaultConstructible)
- 可复制构造 (CopyConstructible)
- 可复制赋值 (CopyAssignable)
- 可析构 (Destructible)
- 可交换 (Swappable)
并且,给定:
-
Arg
,格式化参数类型 -
CharT
,字符类型 -
BasicFormatter
,对于类型Arg
与CharT
的基本格式化器 (BasicFormatter) 类型值 -
OutputIt
,老式输出迭代器 (LegacyOutputIterator) 类型 -
f
,(可能为 const 的)BasicFormatter
类型值 -
g
,BasicFormatter
类型值 -
arg
,Arg
类型左值 -
ParseContext
, std::basic_format_parse_context<CharT> 的别名 -
FormatContext
, std::basic_format_context<OutputIt, CharT> 的别名 -
parse_ctx
,ParseContext
类型的左值 -
format_ctx
,FormatContext
类型的左值
表达式 | 返回类型 | 语义 |
---|---|---|
g.parse(parse_ctx) | ParseContext::iterator |
|
f.format(arg, format_ctx) | FormatContext::iterator |
|
- ↑ 这允许格式化器抛出有意义的错误消息。