Spec-Zone.ru › C++

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

Вложенные классы

handle
(C++20)
Обёртка с типом, позволяющая форматировать объекты пользовательского типа
(вложенный public класс)

Члены-функции

(конструктор)
(C++20)
Создаёт объект std::basic_format_arg
(public члены-функция)
operator bool
(C++20)
Проверяет, хранит ли текущий объект аргумент форматирования
(public члены-функция)
visit
(C++26)
Обработка сохранённого аргумента форматирования
(public члены-функция)

Независимые функции

visit_format_arg
(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 используется копия объекта.

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.

Примечания

Макрокоманда проверки наличия функции Значение Std Функция
__cpp_lib_format 202306L (C++26) Член-функция visit

Пример

См. также

basic_format_argsformat_argswformat_args
(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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API