Namespaces
Variants

std:: range-default-formatter <std::range_format::map>

From cppreference.net
定义于头文件 <format>
template < ranges:: input_range R, class CharT >
struct /*range-default-formatter*/ < range_format :: map , R, CharT > ;
(C++23 起)
( 仅用于阐释* )

std:: format_kind < R > std :: range_format :: map 时,针对范围类型的类模板 /*range-default-formatter*/ 会特化为将范围格式化为键值对映射的形式。

目录

成员类型

成员 定义
maybe-const-map (私有) fmt-maybe-const < R, CharT >
( 仅用于说明的成员类型* )
element-type (私有) std:: remove_cvref_t < ranges:: range_reference_t < maybe-const-map >>
( 仅用于说明的成员类型* )

数据成员

成员 定义
underlying_ (私有) 类型为 std:: range_formatter < element-type , CharT > 的底层格式化器
( 仅用于说明的成员对象* )

成员函数

(constructor)
构造 range-default-formatter
(公开成员函数)
parse
解析由 range-format-spec 指定的格式说明符
(公开成员函数)
format
按照 range-format-spec 的规范写入格式化后的范围输出
(公开成员函数)

std:: range-default-formatter <std::range_format::map>:: range-default-formatter

constexpr /*range-default-formatter*/ ( ) ;

等价于:
underlying_. set_brackets ( STATICALLY_WIDEN < CharT > ( "{" ) , STATICALLY_WIDEN < CharT > ( "}" ) ) ;
underlying_. underlying ( ) . set_brackets ( { } , { } ) ;
underlying_. underlying ( ) . set_separator ( STATICALLY_WIDEN < charT > ( ": " ) ) ;

其中 STATICALLY_WIDEN < CharT > ( "..." ) CharT char 时等于 "..." ,当 CharT wchar_t 时等于 L "..."

除非满足以下条件,否则程序非良构:

  • element-type std::pair 的特化,或
  • element-type std::tuple 的特化且 std::tuple_size_v< element-type > 等于 2

std:: range-default-formatter <std::range_format::map>:: parse

template < class ParseContext >
constexpr auto parse ( ParseContext & ctx ) - > ParseContext :: iterator ;

等效于: return underlying_ . format ( ctx ) ;

返回一个指向 范围格式规范 末尾之后的迭代器。

std:: range-default-formatter <std::range_format::map>:: format

template < class FormatContext >
auto format ( maybe - const - map & r, FormatContext & ctx ) const - > FormatContext :: iterator ;

等价于: return underlying_ . format ( r, ctx ) ;

返回指向输出范围末尾的迭代器。

参见

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