A
debug-enabled specialization of
formatter
additionally provides
a public, constexpr, non-static member function
set_debug_format()
which modifies the state of the
formatter to be as if
the type of the
std-format-spec
parsed by the last call to
parse were
?. Each header that declares the template
formatter
provides the following enabled specializations:
- The debug-enabled and constexpr-enabled specializations
template<> struct formatter<char, char>;
template<> struct formatter<char, wchar_t>;
template<> struct formatter<wchar_t, wchar_t>;
- For each charT,
the debug-enabled and constexpr-enabled string type specializations
template<> struct formatter<charT*, charT>;
template<> struct formatter<const charT*, charT>;
template<size_t N> struct formatter<charT[N], charT>;
template<class traits, class Allocator>
struct formatter<basic_string<charT, traits, Allocator>, charT>;
template<class traits>
struct formatter<basic_string_view<charT, traits>, charT>;
- For each charT,
for each IntegerT that is either
a signed or unsigned integer type or bool,
a constexpr-enabled specialization
template<> struct formatter<IntegerT, charT>;
- For each charT,
for each FloatingT that is a cv-unqualified floating-point type,
a specialization
template<> struct formatter<FloatingT, charT>;
- For each charT,
the constexpr-enabled pointer type specialization
template<> struct formatter<nullptr_t, charT>;
- For each charT,
the pointer type specializations
template<> struct formatter<void*, charT>;
template<> struct formatter<const void*, charT>;
The
parse member functions of these formatters
interpret the format specification
as a
std-format-spec
as described in
[format.string.std].