Namespaces
Variants

std:: formattable

From cppreference.net
Défini dans l'en-tête <format>
template < class T, class CharT >

concept formattable = /* formattable_with */ <
std:: remove_reference_t < T > ,
std:: basic_format_context < /* fmt_iter_for */ < CharT > , CharT >

> ;
(1) (depuis C++23)
Modèles auxiliaires
template < class CharT >
using /* fmt_iter_for */ = /* non spécifié */ ;
(2) ( exposition uniquement* )
template < class T, class Context,

class Formatter =
typename Context :: template
formatter_type < std:: remove_const_t < T >> >
concept /* formattable_with */ =
std:: semiregular < Formatter > &&
requires ( Formatter & f, const Formatter & cf, T && t, Context fc,
std:: basic_format_parse_context <
typename Context :: char_type
> pc ) {
{ f. parse ( pc ) } - > std:: same_as < typename decltype ( pc ) :: iterator > ;
{ cf. format ( t, fc ) } - > std:: same_as < typename Context :: iterator > ;

} ;
(3) ( exposition uniquement* )

Le concept formattable spécifie que std:: formatter < std:: remove_cvref_t < T > , CharT > satisfait aux exigences de BasicFormatter et Formatter (si std:: remove_reference_t < T > est qualifié const).

Le modèle d'alias d'exposition uniquement /* fmt_iter_for */ produit un type non spécifié qui satisfait std:: output_iterator < const CharT & > .

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR S'applique à Comportement publié Comportement corrigé
LWG 3925 C++23 le deuxième argument template de std::basic_format_context n'était pas fourni fourni

Voir aussi

(C++20)
définit les règles de formatage pour un type donné
(modèle de classe)
abstrait les opérations de formatage pour un type d'argument de formatage et un type de caractère donnés
(exigence nommée)
(C++20)
définit les fonctions utilisées par la bibliothèque de formatage
(exigence nommée)