std::basic_format_arg<Context>:: handle
|
Определено в заголовке
<format>
|
||
|
template
<
class
Context
>
class basic_format_arg < Context > :: handle ; |
(начиная с C++20) | |
Обёртка со стиранием типа, которая позволяет форматировать объект пользовательского типа.
handle
объекты обычно создаются с помощью
std::make_format_args
и доступны через
std::visit_format_arg
или через
visit
функции-члены класса
std::basic_format_arg
(начиная с C++26)
.
Содержание |
Члены данных
Типичная реализация
handle
является
TriviallyCopyable
и хранит только два нестатических члена данных:
- a const void * указатель на форматируемый объект, и
-
a
void
(
*
)
(
std::
basic_format_parse_context
<
Context
::
char_type
>
&
, Context
&
,
const
void
*
)
указатель на функцию, выполняющую необходимые операции в методе
format(см. ниже).
Функции-члены
|
format
(C++20)
|
форматирует ссылающийся объект с заданными контекстами
(публичная функция-член) |
std::basic_format_arg<Context>::handle:: format
|
void
format
(
std::
basic_format_parse_context
<
Context
::
char_type
>
&
parse_ctx,
Context & format_ctx ) const ; |
(начиная с C++20) | |
Пусть
-
Tбудет типом форматируемого аргумента, -
TDбудет std:: remove_const_t < T > , -
TQбудет const TD если const TD удовлетворяет __formattable_with < Context > илиTDв противном случае, и -
refбудет ссылкой на форматируемый аргумент.
Эквивалентно:
typename
Context
::
template
formatter_type
<
TD
>
f
;
parse_ctx.
advance_to
(
f.
parse
(
parse_ctx
)
)
;
format_ctx.
advance_to
(
f.
format
(
const_cast
<
TQ
&
>
(
static_cast
<
const
TD
&
>
(
ref
)
)
, format_ctx
)
)
;
Примечания
Объект
handle
имеет ссылочную семантику для форматируемого аргумента и не продлевает время его жизни. Ответственность за то, чтобы аргумент переживал
handle
, лежит на программисте. Обычно
handle
используется только внутри функций форматирования.
Смотрите также
|
(C++20)
|
шаблон класса, предоставляющий доступ к аргументу форматирования для пользовательских форматтеров
(шаблон класса) |
|
(C++20)
(C++20)
|
создает объект со стиранием типа, ссылающийся на все аргументы форматирования, конвертируемый в
format_args
(шаблон функции) |