命名空间
变体
操作

std::formatter<range>

来自 cppreference.cn
< cpp‎ | utility‎ | format
 
 
 
 
 
定义于头文件 <format>
template< ranges::input_range R, class CharT >

    requires (std::format_kind<R> != std::range_format::disabled) &&
              std::formattable<ranges::range_reference_t<R>, CharT>

struct formatter<R, CharT>;
(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_rangeranges::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::stringstd::range_format::debug_stringstd::formatter 特化,format-specstd-format-spec 而不是 range-format-spec(其使用 std::formatter<std::basic_string<CharT>, CharT> 作为底层格式化器)。

[编辑] range-default-formatter 的特化

序列形式范围的格式化工具
(类模板特化) [编辑]
映射形式范围的格式化工具
(类模板特化) [编辑]
集合形式范围的格式化工具
(类模板特化) [编辑]
字符串或转义字符串形式范围的格式化工具
(类模板特化) [编辑]

[编辑] 示例

[编辑] 参阅

(C++20)
定义给定类型的格式化规则
(类模板) [编辑]
有助于实现范围类型的 std::formatter 特化的类模板
(类模板) [编辑]