Spec-Zone.ru › C++

std::basic_format_args

Определён в заголовочном файле <format>
template< class Context >
class basic_format_args;
(1) (начиная с C++20)
using format_args = basic_format_args<std::format_context>;
(2) (начиная с C++20)
using wformat_args = basic_format_args<std::wformat_context>;
(3) (начиная с C++20)

Предоставляет доступ к аргументам форматирования.

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

(constructor)
создаёт объект basic_format_args
(открытая функция-член)
get
возвращает аргумент форматирования с заданным индексом
(открытая функция-член)

std::basic_format_args::basic_format_args

template< class... Args >
basic_format_args( const /*format-arg-store*/<Context, Args...>& store ) noexcept;

Создаёт объект basic_format_args из результата вызова std::make_format_args или std::make_wformat_args.

std::basic_format_args::get

std::basic_format_arg<Context> get( std::size_t i ) const noexcept;

Возвращает std::basic_format_arg, содержащий аргумент с индексом i в args, где args — это пакет параметров, переданный в std::make_format_args или std::make_wformat_args.

Если такого аргумента форматирования нет (то есть *this был создан по умолчанию или i не меньше числа аргументов форматирования), возвращает std::basic_format_arg, созданный по умолчанию (содержащий объект std::monostate).

Руководства по выводу типа

template< class Context, class... Args >
basic_format_args( /*format-arg-store*/<Context, Args...> ) -> basic_format_args<Context>;
(начиная с C++20)

Примечания

std::basic_format_args имеет семантику ссылки. Программист несёт ответственность за то, чтобы *this не пережил store (который, в свою очередь, не должен пережить аргументы для std::make_format_args или std::make_wformat_args).

Пример

Отчёты об исправлениях дефектов

Следующие отчёты об исправлениях дефектов, изменяющих поведение, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применён к Поведение согласно опубликованной версии Корректное поведение
P2216R3 C++20 format_args_t был предоставлен из-за избыточного числа параметров у vformat_to удалён
LWG 3810 C++20 у basic_format_args отсутствовало руководство по выводу типа добавлено
LWG 4106 C++20 basic_format_args можно было создать по умолчанию конструктор по умолчанию удалён

См. также

basic_format_arg
(C++20)
шаблон класса, предоставляющий пользовательским форматтерам доступ к аргументу форматирования
(шаблон класса)

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

Spec-Zone.ru

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