Пространства имён
Варианты
Действия

std::basic_format_context

Материал из cppreference.com
< cpp‎ | utility‎ | format
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм(C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования(C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Библиотека форматирования
Функции форматирования
(C++20)
(C++20)
(C++20)
(C++20)
Концепты форматирования
Форматировщик
(C++20)
basic_format_contextformat_contextwformat_context
(C++20)(C++20)(C++20)
Аргументы форматирования
(C++20)(устарело в C++26)
Ошибка формата
 
Определено в заголовочном файле <format>
template<class OutputIt, class CharT >
class basic_format_context;
(1) (начиная с C++20)
using format_context = basic_format_context</* не указано */, char>;
(2) (начиная с C++20)
using wformat_context = basic_format_context</* не указано */, wchar_t>;
(3) (начиная с C++20)

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

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

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

Содержание

[править]Типы элементы

Тип Определение
iteratorOutputIt
char_typeCharT

[править]Элементы псевдонимы шаблонов

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

[править]Функции-элементы

arg
возвращает аргумент по заданному индексу
(public функция-элемент)
locale
возвращает локаль, используемую для форматирования, специфичного для локали
(public функция-элемент)
out
возвращает итератор на выходной буфер
(public функция-элемент)
advance_to
перемещает выходной итератор в заданную позицию
(public функция-элемент)

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++:

Номер Применён Поведение в стандарте Корректное поведение
LWG 3567 C++20 basic_format_context не работает с типами итераторов
только для перемещения
сделано для итераторов перемещения

[править]Смотрите также

close