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) |
оболочка со стиранием типа, позволяющая форматировать объект пользовательского типа (public элемент класса) |
Функции-элементы
(конструктор) (C++20) |
создаёт std::basic_format_arg (public функция-элемент) |
operator bool (C++20) |
проверяет, содержит ли текущий объект аргумент форматирования (public функция-элемент) |
visit (C++26) |
посещает сохранённый аргумент форматирования (public функция-элемент) |
Функции, не являющиеся элементами
(C++20) (устарело в C++26) |
интерфейс посещения аргументов для определяемых пользователем средств форматирования (шаблон функции) |
std::basic_format_arg::basic_format_arg
<tbody> </tbody> basic_format_arg() noexcept; |
(начиная с C++20) | |
Конструктор по умолчанию. Создаёт basic_format_arg, который не содержит аргумент форматирования. Сохранённый объект имеет тип std::monostate.
Чтобы создать basic_format_arg, который содержит аргумент форматирования, необходимо использовать std::make_format_args.
std::basic_format_arg::operator bool
<tbody> </tbody> explicit operator bool() const noexcept; |
(начиная с C++20) | |
Проверяет, содержит ли *this аргумент форматирования.
Возвращает true, если *this содержит аргумент форматирования (т.е. хранимый объект не имеет типа std::monostate), false иначе.
std::basic_format_arg::visit
<tbody> </tbody> 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) |
класс, который обеспечивает доступ ко всем аргументам форматирования (шаблон класса) |