std:: range-default-formatter <std::range_format::map>
|
定义于头文件
<format>
|
||
|
template
<
ranges::
input_range
R,
class
CharT
>
struct /*range-default-formatter*/ < range_format :: map , R, CharT > ; |
(C++23 起)
( 仅用于阐释* ) |
|
当 std:: format_kind < R > 为 std :: range_format :: map 时,针对范围类型的类模板 /*range-default-formatter*/ 会特化为将范围格式化为键值对映射的形式。
目录 |
成员类型
| 成员 | 定义 |
maybe-const-map
(私有)
|
fmt-maybe-const
<
R, CharT
>
( 仅用于说明的成员类型* ) |
element-type
(私有)
|
std::
remove_cvref_t
<
ranges::
range_reference_t
<
maybe-const-map
>>
( 仅用于说明的成员类型* ) |
数据成员
| 成员 | 定义 |
underlying_
(私有)
|
类型为
std::
range_formatter
<
element-type
, CharT
>
的底层格式化器
( 仅用于说明的成员对象* ) |
成员函数
|
(constructor)
|
构造
range-default-formatter
(公开成员函数) |
|
parse
|
解析由
range-format-spec
指定的格式说明符
(公开成员函数) |
|
format
|
按照
range-format-spec
的规范写入格式化后的范围输出
(公开成员函数) |
std:: range-default-formatter <std::range_format::map>:: range-default-formatter
|
constexpr
/*range-default-formatter*/
(
)
;
|
||
等价于:
underlying_.
set_brackets
(
STATICALLY_WIDEN
<
CharT
>
(
"{"
)
, STATICALLY_WIDEN
<
CharT
>
(
"}"
)
)
;
underlying_.
underlying
(
)
.
set_brackets
(
{
}
,
{
}
)
;
underlying_.
underlying
(
)
.
set_separator
(
STATICALLY_WIDEN
<
charT
>
(
": "
)
)
;
其中
STATICALLY_WIDEN
<
CharT
>
(
"..."
)
当
CharT
为
char
时等于
"..."
,当
CharT
为
wchar_t
时等于
L
"..."
。
除非满足以下条件,否则程序非良构:
-
element-type是 std::pair 的特化,或 -
element-type是 std::tuple 的特化且std::tuple_size_v< element-type >等于 2 。
std:: range-default-formatter <std::range_format::map>:: parse
|
template
<
class
ParseContext
>
constexpr auto parse ( ParseContext & ctx ) - > ParseContext :: iterator ; |
||
等效于:
return
underlying_
.
format
(
ctx
)
;
。
返回一个指向 范围格式规范 末尾之后的迭代器。
std:: range-default-formatter <std::range_format::map>:: format
|
template
<
class
FormatContext
>
auto format ( maybe - const - map & r, FormatContext & ctx ) const - > FormatContext :: iterator ; |
||
等价于:
return
underlying_
.
format
(
r, ctx
)
;
。
返回指向输出范围末尾的迭代器。
参见
|
(C++20)
|
为给定类型定义格式化规则
(类模板) |
|
(C++23)
|
辅助实现范围类型的
std::formatter
特化的类模板
(类模板) |