Archivo de encabezado de la biblioteca estándar <format>
De cppreference.com
Este archivo de encabezado es parte de la biblioteca de formato.
Clases | |
(C++20) |
Plantilla de clase que define las reglas de formato para un tipo dado. (plantilla de clase) |
(C++20)(C++20)(C++20) |
Estado de formato del analizador de cadena. (plantilla de clase) |
(C++20)(C++20)(C++20) |
Estado de formato, incluyendo todos los argumentos de formato y el iterador de salida. (plantilla de clase) |
(C++20) |
Plantilla de clase que proporciona acceso a un argumento de formato para formateadores definidos por el usuario. (plantilla de clase) |
(C++20)(C++20)(C++20)(C++20) |
Clase que proporciona acceso a todos los argumentos de formato. (plantilla de clase) |
(C++20) |
Tipo de excepción lanzada cuando ocurren errores de formato. (clase) |
Funciones | |
(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) |
Escribe una representación formateada de sus argumentos mediante un iterador de salida, no excediendo un tamaño específico. (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) |
(C++20) |
Variante de no plantilla de std::format utilizando una representación de argumento de tipo borrado. (función) |
(C++20) |
Variante de no plantilla de std::format_to utilizando una representación de argumento de tipo borrado. (plantilla de función) |
(C++20) |
Interfaz de visitación de argumento para formateadores definidos por el usuario. (plantilla de función) |
(C++20)(C++20) |
Crea un objeto de tipo borrado haciendo referencia a todos los argumentos de formato, convertible a format_args (plantilla de función) |
Sinopsis
namespace std {
// funciones de formato
template<class... Args>
string format(string_view fmt, const Args&... args);
template<class... Args>
wstring format(wstring_view fmt, const Args&... args);
template<class... Args>
string format(const locale& loc, string_view fmt, const Args&... args);
template<class... Args>
wstring format(const locale& loc, wstring_view fmt, const Args&... args);
string vformat(string_view fmt, format_args args);
wstring vformat(wstring_view fmt, wformat_args args);
string vformat(const locale& loc, string_view fmt, format_args args);
wstring vformat(const locale& loc, wstring_view fmt, wformat_args args);
template<class Out, class... Args>
Out format_to(Out out, string_view fmt, const Args&... args);
template<class Out, class... Args>
Out format_to(Out out, wstring_view fmt, const Args&... args);
template<class Out, class... Args>
Out format_to(Out out, const locale& loc, string_view fmt, const Args&... args);
template<class Out, class... Args>
Out format_to(Out out, const locale& loc, wstring_view fmt, const Args&... args);
template<class Out>
Out vformat_to(Out out, string_view fmt,
format_args_t<type_identity_t<Out>, char> args);
template<class Out>
Out vformat_to(Out out, wstring_view fmt,
format_args_t<type_identity_t<Out>, wchar_t> args);
template<class Out>
Out vformat_to(Out out, const locale& loc, string_view fmt,
format_args_t<type_identity_t<Out>, char> args);
template<class Out>
Out vformat_to(Out out, const locale& loc, wstring_view fmt,
format_args_t<type_identity_t<Out>, wchar_t> args);
template<class Out> struct format_to_n_result {
Out out;
iter_difference_t<Out> size;
};
template<class Out, class... Args>
format_to_n_result<Out> format_to_n(Out out, iter_difference_t<Out> n,
string_view fmt, const Args&... args);
template<class Out, class... Args>
format_to_n_result<Out> format_to_n(Out out, iter_difference_t<Out> n,
wstring_view fmt, const Args&... args);
template<class Out, class... Args>
format_to_n_result<Out> format_to_n(Out out, iter_difference_t<Out> n,
const locale& loc, string_view fmt,
const Args&... args);
template<class Out, class... Args>
format_to_n_result<Out> format_to_n(Out out, iter_difference_t<Out> n,
const locale& loc, wstring_view fmt,
const Args&... args);
template<class... Args>
size_t formatted_size(string_view fmt, const Args&... args);
template<class... Args>
size_t formatted_size(wstring_view fmt, const Args&... args);
template<class... Args>
size_t formatted_size(const locale& loc, string_view fmt, const Args&... args);
template<class... Args>
size_t formatted_size(const locale& loc, wstring_view fmt, const Args&... args);
// formateador
template<class T, class charT = char> struct formatter;
// plantilla de clase basic_format_parse_context
template<class charT> class basic_format_parse_context;
using format_parse_context = basic_format_parse_context<char>;
using wformat_parse_context = basic_format_parse_context<wchar_t>;
template<class Out, class charT> class basic_format_context;
using format_context = basic_format_context<unspecified, char>;
using wformat_context = basic_format_context<unspecified, wchar_t>;
// argumentos
// plantilla de clase basic_format_arg
template<class Context> class basic_format_arg;
template<class Visitor, class Context>
/* véase descripción */ visit_format_arg(Visitor&& vis, basic_format_arg<Context> arg);
// plantilla de clase format-arg-store
template<class Context, class... Args> struct /*format-arg-store*/; // solo exposición
template<class Context = format_context, class... Args>
/*format-arg-store*/<Context, Args...>
make_format_args(const Args&... args);
template<class... Args>
/*format-arg-store*/<wformat_context, Args...>
make_wformat_args(const Args&... args);
// plantilla de clase basic_format_args
template<class Context> class basic_format_args;
using format_args = basic_format_args<format_context>;
using wformat_args = basic_format_args<wformat_context>;
template<class Out, class charT>
using format_args_t = basic_format_args<basic_format_context<Out, charT>>;
// clase format_error
class format_error;
}
Plantilla de clase std::basic_format_parse_context
namespace std {
template<class charT>
class basic_format_parse_context {
public:
using char_type = charT;
using const_iterator = typename basic_string_view<charT>::const_iterator;
using iterator = const_iterator;
private:
iterator begin_; // solo exposición
iterator end_; // solo exposición
enum indexing { unknown, manual, automatic }; // solo exposición
indexing indexing_; // solo exposición
size_t next_arg_id_; // solo exposición
size_t num_args_; // solo exposición
public:
constexpr explicit basic_format_parse_context(basic_string_view<charT> fmt,
size_t num_args = 0) noexcept;
basic_format_parse_context(const basic_format_parse_context&) = delete;
basic_format_parse_context& operator=(const basic_format_parse_context&) = delete;
constexpr const_iterator begin() const noexcept;
constexpr const_iterator end() const noexcept;
constexpr void advance_to(const_iterator it);
constexpr size_t next_arg_id();
constexpr void check_arg_id(size_t id);
};
}
Plantilla de clase std::basic_format_context
namespace std {
template<class Out, class charT>
class basic_format_context {
basic_format_args<basic_format_context> args_; // solo exposición
Out out_; // solo exposición
public:
using iterator = Out;
using char_type = charT;
template<class T> using formatter_type = formatter<T, charT>;
basic_format_arg<basic_format_context> arg(size_t id) const;
std::locale locale();
iterator out();
void advance_to(iterator it);
};
}
Plantilla de clase std::basic_format_arg
namespace std {
template<class Context>
class basic_format_arg {
public:
class handle;
private:
using char_type = typename Context::char_type; // solo exposición
variant<monostate, bool, char_type,
int, unsigned int, long long int, unsigned long long int,
float, double, long double,
const char_type*, basic_string_view<char_type>,
const void*, handle> value; // solo exposición
template<class T> explicit basic_format_arg(const T& v) noexcept; // solo exposición
explicit basic_format_arg(float n) noexcept; // solo exposición
explicit basic_format_arg(double n) noexcept; // solo exposición
explicit basic_format_arg(long double n) noexcept; // solo exposición
explicit basic_format_arg(const char_type* s); // solo exposición
template<class traits>
explicit basic_format_arg(
basic_string_view<char_type, traits> s) noexcept; // solo exposición
template<class traits, class Allocator>
explicit basic_format_arg(
const basic_string<char_type, traits, Allocator>& s) noexcept; // solo exposición
explicit basic_format_arg(nullptr_t) noexcept; // solo exposición
template<class T>
explicit basic_format_arg(const T* p) noexcept; // solo exposición
public:
basic_format_arg() noexcept;
explicit operator bool() const noexcept;
};
}
Clase std::basic_format_arg::handle
namespace std {
template<class Context>
class basic_format_arg<Context>::handle {
const void* ptr_; // solo exposición
void (*format_)(basic_format_parse_context<char_type>&,
Context&, const void*); // solo exposición
template<class T> explicit handle(const T& val) noexcept; // solo exposición
friend class basic_format_arg<Context>; // solo exposición
public:
void format(basic_format_parse_context<char_type>&, Context& ctx) const;
};
}
Plantilla de clase format-arg-store
namespace std {
template<class Context, class... Args>
struct /*format-arg-store*/ { // solo exposición
array<basic_format_arg<Context>, sizeof...(Args)> args;
};
}
Plantilla de clase std::basic_format_args
namespace std {
template<class Context>
class basic_format_args {
size_t size_; // solo exposición
const basic_format_arg<Context>* data_; // solo exposición
public:
basic_format_args() noexcept;
template<class... Args>
basic_format_args(const /*format-arg-store*/<Context, Args...>& store) noexcept;
basic_format_arg<Context> get(size_t i) const noexcept;
};
}
Clase std::format_error
namespace std {
class format_error : public runtime_error {
public:
explicit format_error(const string& what_arg);
explicit format_error(const char* what_arg);
};
}