Namespaces
Variants

std::basic_format_arg<Context>:: handle

From cppreference.net
Défini dans l'en-tête <format>
template < class Context >
class basic_format_arg < Context > :: handle ;
(depuis C++20)

Un wrapper à effacement de type qui permet de formater un objet d'un type défini par l'utilisateur.

handle objects are généralement créés par std::make_format_args et accédés via std::visit_format_arg ou les fonctions membres visit de std::basic_format_arg (depuis C++26) .

Table des matières

Membres de données

Une implémentation typique de handle est TriviallyCopyable et ne stocke que deux membres de données non statiques :

  • un const void * pointeur vers l'objet à formater, et
  • un void ( * ) ( std:: basic_format_parse_context < Context :: char_type > & , Context & , const void * ) pointeur de fonction vers la fonction effectuant les opérations nécessaires dans la fonction membre format (voir ci-dessous).

Fonctions membres

format
(C++20)
formate l'objet référencé avec les contextes donnés
(fonction membre publique)

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

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

Soit

  • T le type de l'argument de formatage,
  • TD soit std:: remove_const_t < T > ,
  • TQ soit const TD si const TD satisfait __formattable_with < Context > ou TD sinon, et
  • ref soit une référence à l'argument de formatage.

Équivalent à : 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 ) ) ;

Notes

Un handle a une sémantique de référence pour l'argument formaté et n'étend pas sa durée de vie. Il est de la responsabilité du programmeur de s'assurer que l'argument survit au handle . Habituellement, un handle n'est utilisé que dans les fonctions de formatage.

Voir aussi

classe template qui fournit l'accès à un argument de formatage pour les formateurs personnalisés
(classe template)
crée un objet à type effacé référençant tous les arguments de formatage, convertible en format_args
(fonction template)