std::basic_format_context
<format>
class basic_format_context;
Provides access to formatting state consisting of the formatting arguments and the output iterator.
The behavior is undefined if OutputIt
does not model std::output_iterator <const CharT&>.
A program that declares an explicit or partial specialization of std::basic_format_context
is ill-formed, no diagnostic required.
std::basic_format_context
objects can only be created by the implementation. User codes are only allowed to modify the format context via the format
function of std::formatter specializations.
Contents
[edit] Member types
iterator
OutputIt
char_type
CharT
[edit] Member alias templates
[edit] Member functions
basic_format_context
cannot be constructed by user code (public member function)
basic_format_context
is not assignable (public member function)
(public member function)
(public member function)
(public member function)
(public member function)
std::basic_format_context::arg
Returns a std::basic_format_arg
holding the id
-th argument in args
, where args
is the parameter pack or std::basic_format_args
object passed to the formatting function.
If id
is not less than the number of formatting arguments, returns a default-constructed std::basic_format_arg
(holding a std::monostate object).
std::basic_format_context::locale
Returns the locale passed to the formatting function, or a default-constructed std::locale if the formatting function does not take a locale.
std::basic_format_context::out
Returns the iterator to the output buffer. The result is move-constructed from the stored iterator.
std::basic_format_context::advance_to
Move assigns it
to the stored output iterator. After a call to advance_to
, the next call to out()
will return an iterator with the value that it
had before the assignment.
[edit] Example
Reason: no example
[edit] Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 3567 | C++20 | basic_format_context does not work move-only iterator types
|
made to move iterators |
LWG 3975 | C++20 | user specialization of basic_format_context was allowed
|
disallowed |
LWG 4061 | C++20 | basic_format_context was constructible and assignable by user code
|
made neither constructible nor assignable |