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::format_kind<R> 为 std::range_format::string 或 std::range_format::debug_string 的 std::formatter
特化,format-spec 是 std-format-spec 而不是 range-format-spec(其使用 std::formatter<std::basic_string<CharT>, CharT> 作为底层格式化器)。
[编辑] range-default-formatter
的特化
序列形式范围的格式化工具 (类模板特化) | |
映射形式范围的格式化工具 (类模板特化) | |
集合形式范围的格式化工具 (类模板特化) | |
字符串或转义字符串形式范围的格式化工具 (类模板特化) |
[编辑] 示例
本节不完整 原因:示例 |
[编辑] 参阅
(C++20) |
定义给定类型的格式化规则 (类模板) |
(C++23) |
有助于实现范围类型的 std::formatter 特化的类模板 (类模板) |