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