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 特化 (类模板) |