std::vformat_to
| Определено в заголовочном файле <format>
|
||
template< class OutputIt > OutputIt vformat_to( OutputIt out, std::string_view fmt, std::format_args args ); |
(1) | (начиная с C++20) |
template< class OutputIt > OutputIt vformat_to( OutputIt out, std::wstring_view fmt, std::wformat_args args ); |
(2) | (начиная с C++20) |
template< class OutputIt > OutputIt vformat_to( OutputIt out, const std::locale& loc, std::string_view fmt, std::format_args args ); |
(3) | (начиная с C++20) |
template< class OutputIt > OutputIt vformat_to( OutputIt out, const std::locale& loc, std::wstring_view fmt, std::wformat_args args ); |
(4) | (начиная с C++20) |
Форматирует аргументы, хранящиеся в args, в соответствии со строкой формата fmt, и записывает результат в итератор вывода out. Если присутствует, loc используется для форматирования, зависящего от локали.
Пусть CharT будет decltype(fmt)::char_type (char для перегрузок (1,3), wchar_t для перегрузок (2,4)).
Эти перегрузки участвуют в разрешении перегрузки, только если
OutputIt соответствует концепту std::output_iterator<const CharT&>.
Поведение не определено, если OutputIt не моделирует (не отвечает семантическим требованиям) концепт std::output_iterator<const CharT&>, или если std::formatter<Ti, CharT> не соответствует требованиям Formatter ни для одного Ti в типе аргументов.
Параметры
| out | — | итератор буфера вывода | ||||||||||||||||||||||||||||||||||||||||||
| fmt | — | объект, представляющий строку формата. Строка формата состоит из
Каждое поле замены имеет следующий формат:
1) поле замены без указания формата
2) поле замены со спецификацией формата
| ||||||||||||||||||||||||||||||||||||||||||
| args | — | аргументы для форматирования | ||||||||||||||||||||||||||||||||||||||||||
| loc | — | std::locale используется для форматирования, зависящего от локали | ||||||||||||||||||||||||||||||||||||||||||
Возвращаемое значение
Итератор за концом выходного диапазона.
Исключения
Генерирует std::format_error, если fmt не является допустимой строкой формата для предоставленных аргументов. Также распространяет любые исключения, вызванные операциями форматирования или итерирования.
Пример
| Этот раздел не завершён Причина: нет примера |
Отчёты о дефектах
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
| Номер | Применён | Поведение в стандарте | Корректное поведение |
|---|---|---|---|
| WG не указан | C++20 | тип args параметризуется на OutputIt
|
не параметризован |