C++ named requirements: BasicFormatter (since C++20)
BasicFormatter es un tipo que abstrae las operaciones de formato para un tipo de argumento de formato y tipo de carácter dados. Las especializaciones de std::formatter deben cumplir con los requisitos de BasicFormatter .
Un BasicFormatter es un Formatter si es capaz de formatear tanto argumentos const como no const.
Requisitos
Un tipo satisface BasicFormatter si es semirregular, lo que significa que satisface:
Y, dados los siguientes tipos y valores, las expresiones mostradas en la tabla a continuación son válidas y tienen la semántica indicada:
| Tipo | Definición |
CharT
|
un tipo de carácter |
Arg
|
un tipo de argumento de formato |
Formatter
|
un tipo
Formatter
para los tipos
Arg
y
CharT
|
OutputIt
|
un tipo LegacyOutputIterator |
ParseCtx
|
std:: basic_format_parse_context < CharT > |
FmtCtx
|
std:: basic_format_context < OutputIt, CharT > |
| Valor | Definición |
| f |
un valor de tipo (posiblemente calificado con const)
Formatter
|
| g |
un valor de tipo
Formatter
|
| arg |
un lvalue de tipo
Arg
|
| t |
un valor de tipo convertible a (posiblemente calificado con const)
Arg
|
| parse_ctx |
un lvalue de tipo
ParseCtx
que satisface todas las siguientes condiciones:
|
| fmt_ctx |
un lvalue de tipo
FmtCtx
|
| Expresión | Tipo de retorno | Semántica |
|---|---|---|
| g. parse ( parse_ctx ) |
ParseCtx::iterator
|
|
| f. format ( arg, fmt_ctx ) |
FmtCtx::iterator
|
|
- ↑ Esto permite a los formateadores emitir mensajes de error significativos.
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 3892 | C++20 | el valor de pc. begin ( ) no estaba claro si format-spec no está presente | aclarado |