Namespaces
Variants

std::basic_format_arg<Context>:: handle

From cppreference.net
Definido en el encabezado <format>
template < class Context >
class basic_format_arg < Context > :: handle ;
(desde C++20)

Un contenedor con borrado de tipo que permite formatear un objeto de un tipo definido por el usuario.

handle objetos son típicamente creados por std::make_format_args y accedidos a través de std::visit_format_arg o las funciones miembro visit de std::basic_format_arg (desde C++26) .

Contenidos

Miembros de datos

Una implementación típica de handle es TriviallyCopyable y solo almacena dos miembros de datos no estáticos:

  • un const void * puntero al objeto a formatear, y
  • un void ( * ) ( std:: basic_format_parse_context < Context :: char_type > & , Context & , const void * ) puntero a función que realiza las operaciones necesarias en la función miembro format (ver abajo).

Funciones miembro

format
(C++20)
formatea el objeto referenciado con los contextos dados
(función miembro pública)

std::basic_format_arg<Context>::handle:: format

void format ( std:: basic_format_parse_context < Context :: char_type > & parse_ctx,
Context & format_ctx ) const ;
(desde C++20)

Sea

  • T el tipo del argumento de formato,
  • TD sea std:: remove_const_t < T > ,
  • TQ sea const TD si const TD satisface __formattable_with < Context > o TD en caso contrario, y
  • ref sea una referencia al argumento de formato.

Equivalente a: 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 ) ) ;

Notas

Un handle tiene semántica de referencia para el argumento formateado y no extiende su tiempo de vida. Es responsabilidad del programador asegurar que el argumento sobreviva al handle . Normalmente, un handle solo se utiliza dentro de funciones de formateo.

Véase también

plantilla de clase que proporciona acceso a un argumento de formato para formateadores definidos por el usuario
(plantilla de clase)
crea un objeto con tipo borrado que referencia todos los argumentos de formato, convertible a format_args
(plantilla de función)