Namespaces
Variants

std:: println (std::ostream)

From cppreference.net
Definido en el encabezado <ostream>
template < class ... Args >
void println ( std:: ostream & os, std:: format_string < Args... > fmt, Args && ... args ) ;
(1) (desde C++23)
void println ( std:: ostream & os ) ;
(2) (desde C++26)

Formatea args de acuerdo con la cadena de formato fmt con un ' \n ' añadido (lo que significa que cada salida termina con una nueva línea), e inserta el resultado en el flujo os .

1) Equivalente a: std::print ( os, "{} \n " , std:: format ( os. getloc ( ) , fmt, args... ) ) ;
2) Equivalente a: std::print ( os, " \n " ) ;

El comportamiento no está definido si std:: formatter < Ti, char > no cumple con los requisitos de BasicFormatter para cualquier Ti en Args (como lo requiere std:: make_format_args ).

Contenidos

Parámetros

os - flujo de salida donde insertar los datos
fmt - un objeto que representa la cadena de formato. La cadena de formato consiste en:
  • caracteres ordinarios (excepto { y } ), que se copian sin cambios a la salida,
  • secuencias de escape { { y } } , que se reemplazan con { y } respectivamente en la salida, y
  • campos de reemplazo.

Cada campo de reemplazo tiene el siguiente formato:

{ arg-id (opcional) } (1)
{ arg-id (opcional) : format-spec } (2)
1) campo de reemplazo sin especificación de formato
2) campo de reemplazo con especificación de formato
arg-id - especifica el índice del argumento en args cuyo valor se usará para el formato; si se omite, los argumentos se usan en orden.

Los arg-id s en una cadena de formato deben estar todos presentes o todos omitidos. Mezclar indexación manual y automática es un error.

format-spec - la especificación de formato definida por la especialización de std::formatter para el argumento correspondiente. No puede comenzar con } .

(desde C++23)
(desde C++26)
  • Para otros tipos formateables, la especificación de formato está determinada por especializaciones de formatter definidas por el usuario.
args... - argumentos a formatear

Excepciones

Notas

Aunque la sobrecarga ( 2 ) se añade en C++26, todas las implementaciones conocidas la hacen disponible en modo C++23.

Macro de prueba de características Valor Std Característica
__cpp_lib_print 202207L (C++23) Salida formateada
__cpp_lib_format 202207L (C++23) Exponer std::basic_format_string

Ejemplo

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 4088 C++23 ( 1 ) ignoraba la configuración regional establecida en os al formatear argumentos dicha configuración regional se utiliza

Véase también

genera representación formateada de los argumentos
(plantilla de función)
(C++23)
igual que std::print excepto que cada impresión termina con una nueva línea adicional
(plantilla de función)
(C++20)
almacena la representación formateada de los argumentos en una nueva cadena
(plantilla de función)