std::basic_format_arg — cppreference.com
Материал из cppreference.com
<tbody> </tbody>
| Определено в заголовочном файле |
||
|
|
(начиная с 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
Классы элементы
| оболочка со стиранием типа, позволяющая форматировать объект пользовательского типа (public элемент класса) |
Функции-элементы
создаёт std::basic_format_arg (public функция-элемент) | |
| проверяет, содержит ли текущий объект аргумент форматирования (public функция-элемент) | |
| посещает сохранённый аргумент форматирования (public функция-элемент) |
Функции, не являющиеся элементами
(C++20) (устарело в C++26) |
интерфейс посещения аргументов для определяемых пользователем средств форматирования (шаблон функции) [править] |
std::basic_format_arg::basic_format_arg
<tbody> </tbody>
|
|
(начиная с C++20) | |
Конструктор по умолчанию. Создаёт basic_format_arg, который не содержит аргумент форматирования. Сохранённый объект имеет тип std::monostate.
Чтобы создать basic_format_arg, который содержит аргумент форматирования, необходимо использовать std::make_format_args.
std::basic_format_arg::operator bool
<tbody> </tbody>
|
|
(начиная с C++20) | |
Проверяет, содержит ли *this аргумент форматирования.
Возвращает true, если *this содержит аргумент форматирования (т.е. хранимый объект не имеет типа std::monostate), false иначе.
std::basic_format_arg::visit
<tbody> </tbody>
|
|
(1) | (начиная с C++26) |
|
|
(2) | (начиная с C++26) |
Применяет посетителя vis к объекту, содержащемуся в arg.
Функции visit не изменяют объект basic_format_arg, для которого они вызываются, поскольку при вызове vis используется копия объекта.
1) Эквивалентно return std::visit(std::forward<Visitor>(vis), v);, где v это std::variant, сохранённый в arg.
2) Эквивалентно return std::visit<R>(std::forward<Visitor>(vis), v);, где v это std::variant, сохранённый в arg.
Примечание
| Макрос тест функциональности | |||
|---|---|---|---|
__cpp_lib_format |
202306L |
(C++26) | Элемент visit
|