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::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 используется копия объекта.
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.Примечания
| Макрокоманда проверки наличия функции | Значение | Std | Функция |
|---|---|---|---|
__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/w/cpp/utility/format/basic_format_arg