[format.range.fmtdef]

# 28 Text processing library [[text]](./#text)

## 28.5 Formatting [[format]](format#range.fmtdef)

### 28.5.7 Formatting of ranges [[format.range]](format.range#fmtdef)

#### 28.5.7.3 Class template *range-default-formatter* [format.range.fmtdef]

[ð](#lib:range-default-formatter)

namespace std {template<ranges::[input_range](range.refinements#concept:input_range "25.4.6 Other range refinements [range.refinements]") R, class charT>struct *range-default-formatter*<range_format::sequence, R, charT> { // *exposition only*private:using *maybe-const-r* = *fmt-maybe-const*<R, charT>; // *exposition only* range_formatter<remove_cvref_t<ranges::range_reference_t<*maybe-const-r*>>,
 charT> *underlying_*; // *exposition only*public:constexpr void set_separator(basic_string_view<charT> sep) noexcept; constexpr void set_brackets(basic_string_view<charT> opening,
 basic_string_view<charT> closing) noexcept; template<class ParseContext>constexpr typename ParseContext::iterator
 parse(ParseContext& ctx); template<class FormatContext>typename FormatContext::iterator
 format(*maybe-const-r*& elems, FormatContext& ctx) const; };}

[ð](#lib:set_separator,range-default-formatter)

`constexpr void set_separator(basic_string_view<charT> sep) noexcept;
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L8161)

*Effects*: Equivalent to: *underlying_*.set_separator(sep);

[ð](#lib:set_brackets,range-default-formatter)

`constexpr void set_brackets(basic_string_view<charT> opening,
                            basic_string_view<charT> closing) noexcept;
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L8173)

*Effects*: Equivalent to: *underlying_*.set_brackets(opening, closing);

[ð](#lib:parse,range-default-formatter)

`template<class ParseContext>
  constexpr typename ParseContext::iterator
    parse(ParseContext& ctx);
`

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L8186)

*Effects*: Equivalent to: return *underlying_*.parse(ctx);

[ð](#lib:format,range-default-formatter)

`template<class FormatContext>
  typename FormatContext::iterator
    format(maybe-const-r& elems, FormatContext& ctx) const;
`

[4](#4)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L8199)

*Effects*: Equivalent to: return *underlying_*.format(elems, ctx);
