std::formatter<range>
在头文件 <format> 中定义 |
||
template< ranges::input_range R, class CharT > requires (std::format_kind<R> != std::range_format::disabled) && |
(自 C++23 起) | |
辅助模板 |
||
template< std::range_format K, ranges::input_range R, class CharT > struct /*range-default-formatter*/; |
(仅供说明*) | |
用于范围类型的 std::formatter 的模板特化允许用户使用 格式化函数 将范围转换为其作为元素集合或字符串的文本表示形式。
此特化源自 range-default-formatter
<std::format_kind<R>, R, CharT>.
如果 R 满足 input_range
,std::format_kind<R> 不是 std::range_format::disabled,并且 std::formattable<ranges::range_reference_t<R>, CharT> 为 true,则启用此特化。
如果 const R 模仿 input_range
并且 ranges::range_reference_t<const R> 模仿 std::formattable<CharT>,则此特化满足 Formatter 要求。它始终满足 BasicFormatter 要求。
内容 |
[编辑] 格式规范
range-format-spec 的语法为
range-fill-and-align (可选) width (可选) n (可选) range-type (可选) range-underlying-spec (可选) |
|||||||||
该语法在 范围格式规范 中得到完整描述。
对于 std::formatter
的特化,其中 std::format_kind<R> 既是 std::range_format::string 又是 std::range_format::debug_string,format-spec 为 std-format-spec 而不是 range-format-spec(它使用 std::formatter<std::basic_string<CharT>, CharT> 作为底层格式化器)。
[编辑] range-default-formatter
的特化
用于以序列形式格式化范围的格式化工具 (类模板特化) | |
用于以映射形式格式化范围的格式化工具 (类模板特化) | |
用于以集合形式格式化范围的格式化工具 (类模板特化) | |
用于以字符串或转义字符串形式格式化范围的格式化工具 (类模板特化) |
[编辑] 示例
此部分尚未完善 原因: 示例 |
[编辑] 另请参见
(C++20) |
为给定类型定义格式化规则 (类模板) |
(C++23) |
帮助实现 std::formatter 范围类型特化的类模板 (类模板) |