Namespaces
Variants

std:: basic_format_context

From cppreference.net
Определено в заголовочном файле <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 >

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

(constructor)
[deleted]
basic_format_context не может быть создан пользовательским кодом
(public member function)
operator=
[deleted]
basic_format_context не может быть присвоен
(public member function)
arg
возвращает аргумент по заданному индексу
(public member function)
locale
возвращает локаль, используемую для локализованного форматирования
(public member function)
out
возвращает итератор выходного буфера
(public member function)
advance_to
перемещает выходной итератор в заданную позицию
(public member function)

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 был конструируемым и присваиваемым пользовательским кодом сделан ни конструируемым, ни присваиваемым