Namespaces
Variants

std:: basic_format_arg

From cppreference.net
Определено в заголовке <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)
тип-стирающая оболочка, позволяющая форматировать объекты пользовательских типов
(публичный класс-член)

Функции-члены

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

Функции, не являющиеся членами класса

(C++20) (deprecated in 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 ;
(since 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) (since C++26)
template < class R, class Visitor >
R visit ( this basic_format_arg arg, Visitor && vis ) ;
(2) (since 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

Пример

Смотрите также

класс, предоставляющий доступ ко всем аргументам форматирования
(шаблон класса)