[format.range.fmtmap] # 28 Text processing library [[text]](./#text) ## 28.5 Formatting [[format]](format#range.fmtmap) ### 28.5.7 Formatting of ranges [[format.range]](format.range#fmtmap) #### 28.5.7.4 Specialization of *range-default-formatter* for maps [format.range.fmtmap] [🔗](#lib:range-default-formatter) namespace std {templatestruct *range-default-formatter* {private:using *maybe-const-map* = *fmt-maybe-const*; // *exposition only*using *element-type* = // *exposition only* remove_cvref_t>; range_formatter<*element-type*, charT> *underlying_*; // *exposition only*public:constexpr *range-default-formatter*(); templateconstexpr typename ParseContext::iterator parse(ParseContext& ctx); templatetypename FormatContext::iterator format(*maybe-const-map*& r, FormatContext& ctx) const; };} [🔗](#lib:range-default-formatter,constructor) `constexpr range-default-formatter(); ` [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L8237) *Mandates*: Either: - [(1.1)](#1.1) *element-type* is a specialization of pair, or - [(1.2)](#1.2) *element-type* is a specialization of tuple andtuple_size_v<*element-type*> == 2[.](#1.sentence-1) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L8248) *Effects*: Equivalent to:*underlying_*.set_brackets(*STATICALLY-WIDEN*("{"), *STATICALLY-WIDEN*("}"));*underlying_*.underlying().set_brackets({}, {});*underlying_*.underlying().set_separator(*STATICALLY-WIDEN*(": ")); [🔗](#lib:parse,range-default-formatter) `template constexpr typename ParseContext::iterator parse(ParseContext& ctx); ` [3](#3) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L8266) *Effects*: Equivalent to: return *underlying_*.parse(ctx); [🔗](#lib:format,range-default-formatter) `template typename FormatContext::iterator format(maybe-const-map& r, FormatContext& ctx) const; ` [4](#4) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L8279) *Effects*: Equivalent to: return *underlying_*.format(r, ctx);