Spec-Zone.ru › C++

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)

Предоставляет доступ к состоянию форматирования, состоящему из аргументов форматирования и выходного итератора.

2) Неуказанный аргумент шаблона — это выходной итератор, добавляющий элементы в std::string, например std::back_insert_iterator<std::string>. Реализации обычно используют итератор для буфера со стёртым типом, поддерживающего добавление элементов в любой непрерывный контейнер с изменяемым размером.
3) Неуказанный аргумент шаблона — это выходной итератор, добавляющий элементы в std::wstring.

Поведение не определено, если OutputIt не удовлетворяет требованиям std::output_iterator<const CharT&>.

Программа, объявляющая явную или частичную специализацию std::basic_format_context, некорректна; диагностика не требуется.

Объекты std::basic_format_context могут создаваться только реализацией. Пользовательский код может изменять контекст форматирования только через функцию format специализаций std::formatter.

Типы-члены

Тип Определение
iterator OutputIt
char_type CharT

Шаблоны псевдонимов-членов

Тип Определение
formatter_type<T> std::formatter<T,CharT>

Функции-члены

конструктор
[удалён]
basic_format_context не может быть создан пользовательским кодом
(открытая функция-член)
operator=
[удалён]
basic_format_context не допускает присваивания
(открытая функция-член)
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 не работает с типами итераторов, допускающими только перемещение изменено для использования перемещающих итераторов
LWG 3975 C++20 пользовательская специализация basic_format_context была разрешена запрещена
LWG 4061 C++20 basic_format_context можно было создавать и присваивать с помощью пользовательского кода создание и присваивание запрещены

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/format/basic_format_context

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API