C++ 具名要求:格式化器 (Formatter)
来自cppreference.com
格式化器 (Formatter) 是对给定的格式化实参类型与字符类型抽象化格式化操作的类型。要求 std::formatter 的特化实现格式化器 (Formatter) 。
要求
一个类型满足格式化器 (Formatter) ,若它为半正则,意思是它满足:
- 可默认构造 (DefaultConstructible)
- 可复制构造 (CopyConstructible)
- 可复制赋值 (CopyAssignable)
- 可析构 (Destructible)
- 可交换 (Swappable)
而且给定
-
Arg
,格式化实参类型 -
CharT
,字符类型 -
Formatter
,对于类型Arg
与CharT
的格式化器 (Formatter) 类型 -
OutputIt
,老式输出迭代器 (LegacyOutputIterator) 类型 -
formatter
,Formatter
类型值 -
arg
,Arg
类型左值 -
t
,可转换到(可能为 const )的Arg
-
ParseContext
, std::basic_format_parse_context<CharT> 的别名 -
FormatContext
, std::basic_format_context<OutputIt, CharT> 的别名 -
parse_context
,ParseContext
类型左值 -
format_context
,FormatContext
类型左值
表达式 | 返回类型 | 语义 |
---|---|---|
formatter.parse(parse_context) | ParseContext::iterator |
|
formatter.format(t, format_context) | FormatContext::iterator |
|
formatter.format(arg, format_context) | FormatContext::iterator |
同上,但不修改 |
- ↑ 这允许格式化器放出有意义的错误消息。