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)

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

Члены

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

std::basic_format_args::basic_format_args

basic_format_args() noexcept;
(1)
template< class... Args >
basic_format_args( const /*format-arg-store*/<Context, Args...>& store ) noexcept;
(2)
1) Создаёт объект basic_format_args, не содержащий аргументов форматирования.
2) Создаёт объект basic_format_args из результата вызова std::make_format_args или std::make_wformat_args.

std::basic_format_args имеет семантику ссылок. Ответственность программиста состоит в том, чтобы убедиться, что *this не будет существовать дольше, чем store (который, в свою очередь, не должен существовать дольше, чем аргументы для 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)

Пример

Отчёты об ошибках

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

DR Применён к Поведение, как опубликовано Правильное поведение
P2216R3 C++20 format_args_t было предоставлено из-за чрезмерного параметрирования vformat_to удалено
LWG3810 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/w/cpp/utility/format/basic_format_args

Spec-Zone.ru

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