命名空间
变体
操作

std::formatter<range>

来自 cppreference.com
< cpp‎ | utility‎ | format
 
 
实用程序库
语言支持
类型支持 (基本类型, RTTI)
库特性测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三向比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用程序
日期和时间
函数对象
格式库 (C++20)
(C++11)
关系运算符 (在 C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
 
 
在头文件 <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_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_stringformat-specstd-format-spec 而不是 range-format-spec(它使用 std::formatter<std::basic_string<CharT>, CharT> 作为底层格式化器)。

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

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

[编辑] 示例

[编辑] 另请参见

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