Пространства имён
Варианты
Действия

std::basic_format_args

Материал из cppreference.com
< cpp‎ | utility‎ | format
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм(C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования(C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Библиотека форматирования
Функции форматирования
(C++20)
(C++20)
(C++20)
(C++20)
Концепты форматирования
Форматировщик
(C++20)
Аргументы форматирования
basic_format_argsformat_argswformat_args
(C++20)(C++20)(C++20)
(C++20)(устарело в C++26)
Ошибка формата
 
Определено в заголовочном файле <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
(public функция-элемент)
get
возвращает аргумент форматирования по заданному индексу
(public функция-элемент)

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 )constnoexcept;

Возвращает 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++:

Номер Применён Поведение в стандарте Корректное поведение
WG не указан C++20 format_args_t предоставлен из-за чрезмерной параметризации vformat_to удалён
WG не указан C++20 basic_format_args не имеет правила вывода добавлено

[править]Смотрите также

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