C++ 参考手册
- C++11
- C++14
- C++17
- C++20
- C++ 编译器支持情况表
- 独立与宿主实现
- C++ 语言
- C++ 关键词
- 预处理器
- C++ 标准库头文件
- 标准库头文件 <ctime>
- 标准库头文件 <cstring>
- 标准库头文件 <set>
- 标准库头文件 <cctype>
- 标准库头文件 <cwctype>
- 标准库头文件 <utility>
- 标准库头文件 <queue>
- 标准库头文件 <complex>
- 标准库头文件 <iterator>
- 标准库头文件 <algorithm>
- 标准库头文件 <valarray>
- 标准库头文件 <numeric>
- 标准库头文件 <cmath>
- 标准库头文件 <iosfwd>
- 标准库头文件 <ios>
- 标准库头文件 <iomanip>
- 标准库头文件 <streambuf>
- 标准库头文件 <istream>
- 标准库头文件 <ostream>
- 标准库头文件 <iostream>
- 标准库头文件 <sstream>
- 标准库头文件 <clocale>
- 标准库头文件 <vector>
- 标准库头文件 <deque>
- 标准库头文件 <list>
- 标准库头文件 <map>
- 标准库头文件 <cwchar>
- 标准库头文件 <locale>
- 标准库头文件 <codecvt>
- 标准库头文件 <bitset>
- 标准库头文件 <functional>
- 标准库头文件 <stdexcept>
- 标准库头文件 <csignal>
- 标准库头文件 <csetjmp>
- 标准库头文件 <stack>
- 标准库头文件 <cassert>
- 标准库头文件 <cerrno>
- 标准库头文件 <memory>
- 标准库头文件 <typeindex>
- 标准库头文件 <type_traits>
- 标准库头文件 <chrono>
- 标准库头文件 <initializer_list>
- 标准库头文件 <tuple>
- 标准库头文件 <scoped_allocator>
- 标准库头文件 <cstdint>
- 标准库头文件 <cinttypes>
- 标准库头文件 <system_error>
- 标准库头文件 <cuchar>
- 标准库头文件 <array>
- 标准库头文件 <forward_list>
- 标准库头文件 <unordered_set>
- 标准库头文件 <unordered_map>
- 标准库头文件 <random>
- 标准库头文件 <ratio>
- 标准库头文件 <cfenv>
- 标准库头文件 <regex>
- 标准库头文件 <atomic>
- 标准库头文件 <thread>
- 标准库头文件 <mutex>
- 标准库头文件 <future>
- 标准库头文件 <condition_variable>
- 标准库头文件 <any>
- 标准库头文件 <optional>
- 标准库头文件 <variant>
- 标准库头文件 <memory_resource>
- 标准库头文件 <string_view>
- 标准库头文件 <charconv>
- 标准库头文件 <execution>
- 标准库头文件 <filesystem>
- 标准库头文件 <concepts>
- 标准库头文件 <coroutine>
- 标准库头文件 <compare>
- 标准库头文件 <version>
- 标准库头文件 <source_location>
- 标准库头文件 <format>
- 标准库头文件 <span>
- 标准库头文件 <ranges>
- 标准库头文件 <bit>
- 标准库头文件 <numbers>
- 标准库头文件 <syncstream>
- 标准库头文件 <stop_token>
- 标准库头文件 <semaphore>
- 标准库头文件 <latch>
- 标准库头文件 <barrier>
- 标准库头文件 <string>
- 标准库头文件 <cstddef>
- 标准库头文件 <limits>
- 标准库头文件 <cfloat>
- 标准库头文件 <climits>
- 标准库头文件 <cstdlib>
- 标准库头文件 <new>
- 标准库头文件 <typeinfo>
- 标准库头文件 <exception>
- 标准库头文件 <cstdarg>
- 标准库头文件 <ciso646>
- 标准库头文件 <cstdalign>
- 标准库头文件 <cstdbool>
- 标准库头文件 <fstream>
- 标准库头文件 <cstdio>
- 标准库头文件 <strstream>
- 标准库头文件 <shared_mutex>
- 标准库头文件 <ccomplex>
- 标准库头文件 <ctgmath>
- 注释
- 具名要求
- 功能特性测试 (C++20)
- 工具库
- 类型支持(基本类型、RTTI、类型特性)
- 概念库 (C++20)
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 容器库
- 迭代器库
- 范围库 (C++20)
- 算法库
- 数值库
- 输入/输出库
- 文件系统库
- 本地化库
- 正则表达式库
- 原子操作库
- 线程支持库
- 实验性 C++ 特性
- 有用的资源
- 索引
- std 符号索引
- 协程支持 (C++20)
- C++ 关键词
位置:首页 > C++ 参考手册 >C++ 标准库头文件 > 标准库头文件 <format>
标准库头文件 <format>
此头文件是格式化库的一部分。
类 | |
(C++20) |
定义给定类型的格式化规则的类模板 (类模板) |
(C++20)(C++20)(C++20) |
格式化字符串分析器状态 (类模板) |
(C++20)(C++20)(C++20) |
格式化状态,包括所有格式化参数和输出迭代器 (类模板) |
(C++20) |
提供对用户定义格式化器的格式化参数的访问的类 (类模板) |
(C++20)(C++20)(C++20)(C++20) |
提供对所有格式化参数的访问的类 (类模板) |
(C++20) |
格式化错误时抛出的异常类型 (类) |
函数 | |
(C++20) |
在新 string 中存储参数的格式化表示 (函数模板) |
(C++20) |
通过输出迭代器写其参数的格式化表示 (函数模板) |
(C++20) |
通过输出迭代器写其参数的格式化表示,不超出指定的大小 (函数模板) |
(C++20) |
确定存储其参数的格式化表示所需的字符数 (函数模板) |
(C++20) |
std::format 的使用类型擦除的参数表示的非模板变体 (函数) |
(C++20) |
std::format_to 的使用类型擦除的参数表示的非模板变体 (函数模板) |
(C++20) |
用户定义格式化器的参数观览接口 (函数模板) |
(C++20)(C++20) |
创建引用所有格式化参数的类型擦除对象,可转换到 format_args (函数模板) |
概要
namespace std { // 格式化函数 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); // 格式化器 template<class T, class charT = char> struct formatter; // 类模板 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>; // 实参 // 类模板 basic_format_arg template<class Context> class basic_format_arg; template<class Visitor, class Context> /* 见描述 */ visit_format_arg(Visitor&& vis, basic_format_arg<Context> arg); // class template format-arg-store template<class Context, class... Args> struct /*format-arg-store*/; // 仅为阐释 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); // 类模板 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>>; // 类 format_error class format_error; }
类模板 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_; // 仅为阐释 iterator end_; // 仅为阐释 enum indexing { unknown, manual, automatic }; // 仅为阐释 indexing indexing_; // 仅为阐释 size_t next_arg_id_; // 仅为阐释 size_t num_args_; // 仅为阐释 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); }; }
类模板 std::basic_format_context
namespace std { template<class Out, class charT> class basic_format_context { basic_format_args<basic_format_context> args_; // 仅为阐释 Out out_; // 仅为阐释 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); }; }
类模板 std::basic_format_arg
namespace std { template<class Context> class basic_format_arg { public: class handle; private: using char_type = typename Context::char_type; // 仅为阐释 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; // 仅为阐释 template<class T> explicit basic_format_arg(const T& v) noexcept; // 仅为阐释 explicit basic_format_arg(float n) noexcept; // 仅为阐释 explicit basic_format_arg(double n) noexcept; // 仅为阐释 explicit basic_format_arg(long double n) noexcept; // 仅为阐释 explicit basic_format_arg(const char_type* s); // 仅为阐释 template<class traits> explicit basic_format_arg( basic_string_view<char_type, traits> s) noexcept; // 仅为阐释 template<class traits, class Allocator> explicit basic_format_arg( const basic_string<char_type, traits, Allocator>& s) noexcept; // 仅为阐释 explicit basic_format_arg(nullptr_t) noexcept; // 仅为阐释 template<class T> explicit basic_format_arg(const T* p) noexcept; // 仅为阐释 public: basic_format_arg() noexcept; explicit operator bool() const noexcept; }; }
类 std::basic_format_arg::handle
namespace std { template<class Context> class basic_format_arg<Context>::handle { const void* ptr_; // 仅为阐释 void (*format_)(basic_format_parse_context<char_type>&, Context&, const void*); // 仅为阐释 template<class T> explicit handle(const T& val) noexcept; // 仅为阐释 friend class basic_format_arg<Context>; // 仅为阐释 public: void format(basic_format_parse_context<char_type>&, Context& ctx) const; }; }
类模板 format-arg-store
namespace std { template<class Context, class... Args> struct /*format-arg-store*/ { // 仅为阐释 array<basic_format_arg<Context>, sizeof...(Args)> args; }; }
类模板 std::basic_format_args
namespace std { template<class Context> class basic_format_args { size_t size_; // 仅为阐释 const basic_format_arg<Context>* data_; // 仅为阐释 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; }; }
类 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); }; }