Scroll to navigation

std::range-default-formatter,(3) C++ Standard Libary std::range-default-formatter,(3)

NAME

std::range-default-formatter, - std::range-default-formatter,

Synopsis


Defined in header <format>
template< std::range_format K, ranges::input_range R, class
CharT >
(since C++23)
requires (K == std::range_format::string || K == (exposition only*)
std::range_format::debug_string)


struct range-default-formatter<K, R, CharT>;


The class template range-default-formatter for range types is specialized for
formatting range as a string or an escaped string if std::format_kind<R> is either
std::range_format::string or std::range_format::debug_string.

Member objects


Member name Definition
the underlying formatter of type
underlying_ (private) std::formatter<std::basic_string<CharT>, CharT>
(exposition-only member object*)

Member functions


constructor constructs a range-default-formatter
(implicitly declared) (public member function)
parse parses the format specifier as specified by std-format-spec
(public member function)
format writes the formatted output as specified by std-format-spec
(public member function)

std::range-default-formatter<std::range_format::string>::parse std::range-default-formatter<std::range_format::debug_string>::parse


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


Equivalent to:


auto i = underlying_.parse(ctx);
if constexpr (K == std::range_format::debug_string)
underlying_.set_debug_format();
return i;


Returns an iterator past the end of the std-format-spec.

std::range-default-formatter<std::range_format::string>::format std::range-default-formatter<std::range_format::debug_string>::format


template< class FormatContext >
auto format( /* see below */& r, FormatContext& ctx ) const ->
FormatContext::iterator;


If ranges::input_range<const R> is true, the type of r is const R&. Otherwise, the
type is R&.


Let s be a std::basic_string<CharT> as if by constructing s with
std::basic_string<CharT>(std::from_range, r) such that ranges::equal(s, r) is true.


Equivalent to return underlying_.format(s, ctx);.


Returns an iterator past the end of the output range.

See also


formatter defines formatting rules for a given type
(C++20) (class template)
range_formatter class template that helps implementing std::formatter
(C++23) specializations for range types
(class template)

2024.06.10 http://cppreference.com