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 起)
Helper templates
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) 的规定。

格式说明

范围格式说明 的语法是:

范围填充与对齐 (可选) 宽度 (可选) n(可选) 范围类型 (可选) 范围底层说明 (可选)

范围格式说明中完整描述了其语法。

对于 std::format_kind<R>std::range_format::stringstd::range_format::debug_stringstd::formatter 的特化,格式说明标准格式说明 而不是 范围格式说明(使用 std::formatter<std::basic_string<CharT>, CharT> 为底层格式化器)。

range-default-formatter 的特化

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

示例

参阅

(C++20)
定义针对给定类型的格式化规则
(类模板)
用于帮助实现 std::formatter 对范围类型的特化的类模板
(类模板)