Espacios de nombres
Variantes

std::format

De cppreference.com
 
 
Biblioteca de servicios
 
Biblioteca de formato
Funciones de formato
(C++20)
(C++20)
(C++20)
(C++20)
Formateador
(C++20)
Argumentos de formato
Error de formato
 
<tbody> </tbody>
Definido en el archivo de encabezado <format>
template<class... Args> std::string format(std::string_view fmt, const Args&... args);
(1) (desde C++20)
template<class... Args> std::wstring format(std::wstring_view fmt, const Args&... args);
(2) (desde C++20)
template<class... Args> std::string format(const std::locale& loc, std::string_view fmt, const Args&... args);
(3) (desde C++20)
template<class... Args> std::wstring format(const std::locale& loc, std::wstring_view fmt, const Args&... args);
(4) (desde C++20)

Formatea a args de acuerdo a la cadena de formato fmt, y devuelve el resultado como una cadena. Si está presente, se usa loc para un formato específico de la configuración regional.

El comportamiento no está definido si std::formatter<Ti, CharT> no cumple con los requerimientos de Formatter para cualquier Ti en Args, donde CharT es decltype(fmt)::char_type (char para las sobrecargas (1,3), wchar_t para las sobrecargas (2,4)).

Parámetros

fmt - Vista sobre cadena que representa la cadena de formato. Un objeto que representa la cadena de formato. La cadena de formato consiste en:
  • caracteres ordinarios (excepto { y }), que se copian sin cambiarse 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:

  • un carácter { introductorio;
  • (opcional) arg-id, un número no negativo;
  • (opcional) dos puntos (:) seguido de una especificación de formato;
  • un carácter } final.

arg-id especifica el índice del argumento en args cuyo valor se usará para formatear; si se omite arg-id, los argumentos se usan en orden. Los arg-ids en una cadena de formato tienen que estar presentes o todos deben de omitirse. Mezclar la indexación manual y automática es un error.

La especificación de formato se define por la especialización de std::formatter del argumento correspondiente.

(desde C++23)
(desde C++26)
  • Para los otros tipos formateables, la especificación de formato se determina por especializaciones de formatter definidas por el usuario.


args... - Argumentos a ser formateados.
loc - std::locale usado para un formato específico de la configuración regional.

Valor de retorno

Un objeto cadena que alberga el resultado formateado.

Excepciones

Lanza std::format_error si fmt no es una cadena de formato válida para los argumentos proporcionados. También propaga cualquier excepción lanzada por cualquier formateador.

Notas

No es un error proporcionar más argumentos de los que requiere la cadena de formato:

std::format("¡{} {}!", "Hola", "mundo", "algo"); // de acuerdo, produce "¡Hola mundo!"

Ejemplo

#include <iostream>
#include <format>

int main() {
    std::cout << std::format("¡Hola {}!\n", "mundo");
}

Salida:

¡Hola mundo!

Véase también

(C++20)
Escribe una representación formateada de sus argumentos mediante un iterador de salida.
(plantilla de función) [editar]
Escribe una representación formateada de sus argumentos mediante un iterador de salida, no excediendo un tamaño específico.
(plantilla de función) [editar]