Namespaces
Variants

std:: basic_format_args

From cppreference.net
Определено в заголовочном файле <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
(public member function)
get
возвращает аргумент форматирования по заданному индексу
(public member function)

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 был конструируемым по умолчанию конструктор по умолчанию удалён

Смотрите также

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