std::format_to_n
Definido en el archivo de encabezado <format>
|
||
template<class OutputIt, class... Args> std::format_to_n_result<OutputIt> |
(1) | (desde C++20) |
template<class OutputIt, class... Args> std::format_to_n_result<OutputIt> |
(2) | (desde C++20) |
template<class OutputIt, class... Args> std::format_to_n_result<OutputIt> |
(3) | (desde C++20) |
template<class OutputIt, class... Args> std::format_to_n_result<OutputIt> |
(4) | (desde C++20) |
template<class OutputIt> struct format_to_n_result { |
(5) | (desde C++20) |
Formatea a args
de acuerdo a la cadena de formato fmt
, y escribe el resultado al iterador de salida out
. Se escriben n
caracteres como máximo. 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
.
std::format_to_n_result
no tiene clases base u otros miembros, excepto out
, size
, y las funciones miembro especiales declaradas implícitamente.Contenido |
[editar] Parámetros
out | - | Iterador al búfer de salida. | ||||
n | - | Número máximo de caracteres a ser escritos al búfer. | ||||
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. |
[editar] Valor de retorno
Un format_to_n_result
tal que el miembro out
es un iterador después del final del rango de salida, y el miembro size
es el tamaño de la salida (no truncada).
[editar] 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.
[editar] Ejemplo
#include <format> #include <string_view> #include <iostream> int main() { char buffer[64]; const auto result = std::format_to_n(buffer, std::size(buffer), "Hubble's H{0} {1} {2} km/sec/mpc.", "\u2080", "\u2245", 71); std::cout << "Búfer: \"" << std::string_view{buffer, result.size} << "\"\n" << "Tamaño del búfer = " << std::size(buffer) << '\n' << "Tamaño de la salida sin truncar = " << result.size << '\n'; }
Salida:
Búfer: "Hubble's H₀ ≅ 71 km/sec/mpc." Tamaño del búfer = 64 Tamaño de la salida sin truncar = 35
[editar] 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. (plantilla de función) |
(C++20) |
Determina el número de caracteres necesario para almacenar la representación formateada de sus argumentos. (plantilla de función) |