Namespaces
Variants

std:: formattable

From cppreference.net
Definido en el encabezado <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) (desde C++23)
Plantillas auxiliares
template < class CharT >
using /* fmt_iter_for */ = /* no especificado */ ;
(2) ( solo para exposición* )
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) ( solo para exposición* )

El concepto formattable especifica que std:: formatter < std:: remove_cvref_t < T > , CharT > cumple con los requisitos de BasicFormatter y Formatter (si std:: remove_reference_t < T > está calificado como const).

La plantilla de alias de solo exposición /* fmt_iter_for */ produce un tipo no especificado que satisface std:: output_iterator < const CharT & > .

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 3925 C++23 el segundo argumento de plantilla de std::basic_format_context no estaba proporcionado proporcionado

Véase también

(C++20)
define las reglas de formato para un tipo dado
(plantilla de clase)
abstrae las operaciones de formato para un tipo de argumento de formato y tipo de carácter dados
(requisito con nombre)
(C++20)
define funciones utilizadas por la biblioteca de formato
(requisito con nombre)