命名空间
变体
操作

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_rangestd::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::formatter 的特化,其中 std::format_kind<R>std::range_format::stringstd::range_format::debug_stringformat-specstd-format-spec 而不是 range-format-spec (它使用 std::formatter<std::basic_string<CharT>, CharT> 作为底层格式化器)。

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

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

[编辑] 示例

[编辑] 参见

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