std::basic_format_arg
Определён в заголовочном файле <format> | ||
|---|---|---|
template< class Context > class basic_format_arg; | (начиная с C++20) |
Предоставляет доступ к аргументу форматирования.
Объекты basic_format_arg обычно создаются с помощью std::make_format_args и доступны через std::visit_format_arg или функции-члены visit(начиная с C++26).
Объект basic_format_arg ведёт себя так, как если бы он хранил std::variant одного из следующих типов:
-
std::monostate(только если объект был создан конструктором по умолчанию) boolContext::char_typeintunsigned intlong long intunsigned long long intfloatdoublelong doubleconst Context::char_type*std::basic_string_view<Context::char_type>const void*basic_format_arg::handle
Вложенные классы
|
(C++20) | обёртка со стёртым типом, позволяющая форматировать объект пользовательского типа (открытый вложенный класс) |
Функции-члены
|
(конструктор)
(C++20) | создаёт std::basic_format_arg (открытая функция-член) |
|
operator bool
(C++20) | проверяет, хранит ли текущий объект аргумент форматирования (открытая функция-член) |
|
visit
(C++26) | посещает сохранённый аргумент форматирования (открытая функция-член) |
Функции, не являющиеся членами
|
(C++20) (устарела в C++26) | интерфейс обхода аргументов для форматтеров, определённых пользователем (шаблон функции) |
std::basic_format_arg::basic_format_arg
basic_format_arg() noexcept; | (начиная с C++20) |
Конструктор по умолчанию. Создаёт basic_format_arg, не хранящий аргумент форматирования. Сохранённый объект имеет тип std::monostate.
Чтобы создать basic_format_arg, хранящий аргумент форматирования, необходимо использовать std::make_format_args.
std::basic_format_arg::operator bool
explicit operator bool() const noexcept; | (начиная с C++20) |
Проверяет, хранит ли *this аргумент форматирования.
Возвращает true, если *this хранит аргумент форматирования (то есть сохранённый объект не имеет тип std::monostate), и false в противном случае.
std::basic_format_arg::visit
template< class Visitor > decltype(auto) visit( this basic_format_arg arg, Visitor&& vis ); | (1) | (начиная с C++26) |
template< class R, class Visitor > R visit( this basic_format_arg arg, Visitor&& vis ); | (2) | (начиная с C++26) |
Применяет посетитель vis к объекту, содержащемуся в arg.
Функции visit не изменяют объект basic_format_arg, для которого они вызваны, поскольку при вызове vis используется копия объекта.
return std::visit(std::forward<Visitor>(vis), v);, где v — это std::variant, сохранённый в arg.return std::visit<R>(std::forward<Visitor>(vis), v);, где v — это std::variant, сохранённый в arg. Примечания
| Макрос проверки поддержки возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_format | 202306L | (C++26) | Функция-член visit |
Пример
См. также
|
(C++20)(C++20)(C++20) | класс, предоставляющий доступ ко всем аргументам форматирования (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/format/basic_format_arg