C++ 参考手册
- C++11
- C++14
- C++17
- C++20
- C++ 编译器支持情况表
- 独立与宿主实现
- C++ 语言
- C++ 关键词
- 预处理器
- C++ 标准库头文件
- 具名要求
- 功能特性测试 (C++20)
- 工具库
- 程序支持工具
- std::initializer_list
- 函数对象
- std::hash
- std::pair
- std::tuple
- std::optional
- std::any
- std::variant
- 格式化库 (C++20)
- std::formatted_size
- std::format
- std::format_to
- std::format_to_n
- std::vformat
- std::vformat_to
- std::formatter
- std::basic_format_parse_context
- std::basic_format_context
- std::basic_format_arg
- std::basic_format_args
- std::visit_format_arg
- std::make_format_args, std::make_wformat_args
- std::format_error
- std::apply
- 库特性测试宏 (C++20)
- std::integer_sequence
- std::exchange
- std::make_from_tuple
- std::launder
- std::to_chars
- std::from_chars
- std::as_const
- std::source_location
- 变参数函数
- std::bitset
- std::cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal, cmp_greater_equal
- std::in_range
- std::declval
- std::forward
- std::move
- std::move_if_noexcept
- std::chars_format
- std::piecewise_construct_t
- std::piecewise_construct
- std::in_place, std::in_place_type, std::in_place_index, std::in_place_t, std::in_place_type_t, std::in_place_index_t
- 注释
- 类型支持(基本类型、RTTI、类型特性)
- 概念库 (C++20)
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 容器库
- 迭代器库
- 范围库 (C++20)
- 算法库
- 数值库
- 输入/输出库
- 文件系统库
- 本地化库
- 正则表达式库
- 原子操作库
- 线程支持库
- 实验性 C++ 特性
- 有用的资源
- 索引
- std 符号索引
- 协程支持 (C++20)
- C++ 关键词
位置:首页 > C++ 参考手册 >工具库 >格式化库 (C++20) > std::basic_format_arg
std::basic_format_arg
定义于头文件 <format>
|
||
template<class Context> class basic_format_arg; |
(C++20 起) | |
提供到格式化参数的访问。
basic_format_arg
对象通常由 std::make_format_args 创建并通过 std::visit_format_arg 访问。
basic_format_arg
对象表现为如同存储一个下列类型的 std::variant :
- std::monostate (仅若对象为默认构造的)
- bool
- Context::char_type
- int
- unsigned int
- long long int
- unsigned long long int
- float
- double
- long double
- const Context::char_type*
- std::basic_string_view<Context::char_type>
- const void*
- basic_format_arg::handle
成员类
类型 | 定义 |
handle |
允许格式化用户定义类型的对象的类型擦除包装 (类) |
成员函数
(构造函数) |
构造 std::basic_format_arg (公开成员函数) |
operator bool |
检查当前对象是否保有格式化参数 (公开成员函数) |
非成员函数
(C++20) |
用户定义格式化器的参数观览接口 (函数模板) |
std::basic_format_arg::handle
template<class Context> class basic_format_arg<Context>::handle; |
||
允许格式化用户定义类型的对象。
成员函数
format |
以给定的环境格式化被引用对象 (公开成员函数) |
std::basic_format_arg::handle::format
void format(std::basic_format_parse_context<Context::char_type>& parse_ctx, Context& format_ctx) const; |
||
令 T
为关联的格式化参数的类型, ref
为指代该格式化参数的 const T&
。等价于:
typename Context::template formatter_type<T> f;
parse_ctx.advance_to(f.parse(parse_ctx));
format_ctx.advance_to(f.format(ref, format_ctx));
std::basic_format_arg::basic_format_arg
basic_format_arg() noexcept; |
||
默认构造函数。构造不保有格式化参数的 basic_format_arg
。存储的对象拥有 std::monostate 类型。
为创建保有格式化参数的 basic_format_arg
,必须使用 std::make_format_args 。
std::basic_format_arg::operator bool
explicit operator bool() const noexcept; |
||
检查 *this
是否保有格式化参数。
若 *this
保有格式化参数(即存储的对象不拥有 std::monostate 类型)则返回 true ,否则返回 false 。
示例
本节未完成 原因:暂无示例 |