std::format_to
| Definido en el archivo de encabezado <format>
|
||
template<class OutputIt, class... Args> OutputIt format_to(OutputIt out, std::string_view fmt, const Args&... args); |
(1) | (desde C++20) |
template<class OutputIt, class... Args> OutputIt format_to(OutputIt out, std::wstring_view fmt, const Args&... args); |
(2) | (desde C++20) |
template<class OutputIt, class... Args> OutputIt format_to(OutputIt out, const std::locale& loc, std::string_view fmt, const Args&... args); |
(3) | (desde C++20) |
template<class OutputIt, class... Args> OutputIt format_to(OutputIt out, 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 escribe el resultado al iterador de salida out. Si está presente, se usa loc para un formato específico de la configuración regional.
Dejemos que CharT sea decltype(fmt)::char_type (char para las sobrecargas (1,3), wchar_t para las sobrecargas (2,4)).
Estas sobrecargas solo participan en la resolución de sobrecargas si
OutputIt satisface el concepto std::output_iterator<const CharT&>.
El comportamiento no está definido si OutputIt no modela (cumple con los requerimientos semánticos de) el concepto std::output_iterator<const CharT&>, o si std::formatter<Ti, CharT> no cumple con los requerimientos de Formatter para cualquier Ti en Args.
Parámetros
| out | - | Iterador al búfer de salida. | ||||
| fmt | - | Vista sobre cadena que representa la cadena de formato.
Cada campo de reemplazo tiene el siguiente formato:
arg-id especifica el índice del argumento en La especificación de formato se define por la especialización de std::formatter del argumento correspondiente.
| ||||
| args... | - | Argumentos a ser formateados. | ||||
| loc | - | std::locale usado para un formato específico de la configuración regional. |
Valor de retorno
Un iterador después del final del rango de salida.
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 el formateador o las operaciones del iterador.
Ejemplo
#include <format>
#include <iostream>
#include <iterator>
#include <string>
auto main() -> int
{
std::string buffer;
std::format_to(
std::back_inserter(buffer), //< OutputIt
"¡Hola, C++{}!\n", //< fmt
"20"); //< arg
std::cout << buffer;
buffer.clear();
std::format_to(
std::back_inserter(buffer), //< OutputIt
"¡Hola, {0}::{1}!{2}", //< fmt
"std", //< arg {0}
"format_to()", //< arg {1}
"\n", //< arg {2}
"param(s) extra..."); //< no se usa
std::cout << buffer;
std::wstring wbuffer;
std::format_to(
std::back_inserter(wbuffer),//< OutputIt
L"¡Hola, {2}::{1}!{0}", //< fmt
L"\n", //< arg {0}
L"format_to()", //< arg {1}
L"std", //< arg {2}
L"...no es..." //< no se usa
L"...un error!"); //< no se usa
std::wcout << wbuffer;
}
Salida:
¡Hola, C++20!
¡Hola, std::format_to()!
¡Hola, std::format_to()!
Véase también
(C++20) |
Almacena una representación formateada de los argumentos en una cadena nueva. (plantilla de función) |
(C++20) |
Escribe una representación formateada de sus argumentos mediante un iterador de salida, no excediendo un tamaño específico. (plantilla de función) |