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 (только если объект был создан по умолчанию)
- bool
- Context::char_type
- int
- unsigned int
- long long int
- unsigned long long int
- float
- double
- long double
- const 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
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 используется копия объекта.
v
это std::variant, сохранённый в arg.v
это std::variant, сохранённый в arg.
[править] Примечание
Макрос тест функциональности | |||
---|---|---|---|
__cpp_lib_format |
202306L | (C++26) | Элемент visit
|
[править] Пример
Этот раздел не завершён Причина: нет примера |
[править] Смотрите также
(C++20)(C++20)(C++20) |
класс, который обеспечивает доступ ко всем аргументам форматирования (шаблон класса) |