std::basic_format_context
Определено в заголовке <format> | ||
|---|---|---|
template< class OutputIt, class CharT > class basic_format_context; | (1) | (с C++20) |
using format_context = basic_format_context</* unspecified */, char>; | (2) | (с C++20) |
using wformat_context = basic_format_context</* unspecified */, wchar_t>; | (3) | (с C++20) |
Предоставляет доступ к состоянию форматирования, состоящему из аргументов форматирования и итератора вывода.
Поведение не определено, если OutputIt не моделирует std::output_iterator<const CharT&>.
std::string, такой как std::back_insert_iterator<std::string>. Реализации обычно используют итератор к типу буфера с типом, стирающим типы, который поддерживает добавление в любой непрерывный и изменяемый контейнер.std::wstring.Типы членов
| Тип | Определение |
|---|---|
iterator | OutputIt |
char_type | CharT |
Псевдонимы шаблонов членов
| Тип | Определение |
|---|---|
| formatter_type<T> | std::formatter<T, CharT> |
Члены-функции
| arg | возвращает аргумент по указанному индексу (публичная функция-член) |
| locale | возвращает используемый локали для форматирования, зависящего от локали (публичная функция-член) |
| out | возвращает итератор на буфер вывода (публичная функция-член) |
| advance_to | перемещает итератор вывода в заданную позицию (публичная функция-член) |
std::basic_format_context::arg
std::basic_format_arg<basic_format_context> arg( std::size_t id ) const; |
Возвращает std::basic_format_arg, содержащую id-й аргумент в args, где args — это пакет параметров или объект std::basic_format_args, переданный функции форматирования.
Если id не меньше количества аргументов форматирования, возвращает созданный по умолчанию std::basic_format_arg (содержащий объект std::monostate).
std::basic_format_context::locale
std::locale locale(); |
Возвращает локаль, переданную функции форматирования, или созданный по умолчанию std::locale, если функция форматирования не принимает локаль.
std::basic_format_context::out
iterator out(); |
Возвращает итератор на буфер вывода. Результат создается с помощью перемещения из хранимого итератора.
std::basic_format_context::advance_to
void advance_to( iterator it ); |
Перемещает it в хранимый итератор вывода. После вызова advance_to, следующий вызов out() вернёт итератор со значением, которое у it было до присваивания.
Пример
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применён к | Поведение, как опубликовано | Корректное поведение |
|---|---|---|---|
| LWG 3567 | C++20 |
basic_format_context не работает с итераторами, только поддерживающими перемещение | изменено для работы с итераторами, поддерживающими перемещение |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/format/basic_format_context