Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/utility/format/ranges formatter/range default formatter string"

From cppreference.com
m (fmt)
m (+'\n')
Line 29: Line 29:
  
 
Equivalent to:
 
Equivalent to:
 +
 
{{c multi|
 
{{c multi|
 
auto i {{=}} underlying_.parse(ctx);|
 
auto i {{=}} underlying_.parse(ctx);|

Revision as of 21:31, 6 January 2024

 
 
Utilities library
General utilities
Relational operators (deprecated in C++20)
 
 
std::formatter<range>
range-default-formatter specializations
range-default-formatter<std::range_format::string>
range-default-formatter<std::range_format::debug_string>
 
Defined in header <format>
template< std::range_format K, ranges::input_range R, class CharT >

    requires (K == std::range_format::string || K == std::range_format::debug_string)

struct range-default-formatter<K, R, CharT>;
(since C++23)
(exposition only*)

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.

Contents

Member objects

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

Member functions

(constructor)
(implicitly declared)
constructs a range-default-formatter
(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 ) -> typename 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

    -> typename 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

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