命名空间
变体
操作

std::basic_format_arg

来自 cppreference.com
< cpp‎ | utility‎ | format
 
 
实用程序库
语言支持
类型支持 (基本类型,RTTI)
库特性测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三方比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用程序
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
 
定义在头文件 <format>
template< class Context >
class basic_format_arg;
(自 C++20 起)

提供对格式化参数的访问。

basic_format_arg 对象通常由 std::make_format_args 创建,并通过 std::visit_format_argvisit 成员函数(自 C++26 起) 访问。

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

内容

[edit] 成员类

(C++20)
类型擦除包装器,允许格式化用户定义类型的对象
(公有成员类)

[edit] 成员函数

(构造函数)
(C++20)
构造 std::basic_format_arg
(公有成员函数)
operator bool
(C++20)
检查当前对象是否包含格式化参数
(公有成员函数)
visit
(C++26)
访问存储的格式化参数
(公有成员函数)

[edit] 非成员函数

(C++20) (C++26 中已弃用)
用户定义格式化程序的参数访问接口
(函数模板) [edit]

std::basic_format_arg::basic_format_arg

basic_format_arg() noexcept;
(自 C++20 起)

默认构造函数。构造一个不包含格式化参数的 basic_format_arg。存储的 对象类型为 std::monostate

要创建一个包含格式化参数的 basic_format_arg,必须使用 std::make_format_args

std::basic_format_arg::operator bool

explicit operator bool() const noexcept;
(自 C++20 起)

检查 *this 是否包含格式化参数。

如果 *this 包含格式化参数(即存储的对象类型不是 std::monostate),则返回 true,否则返回 false

[edit] 注释

功能测试 Std 功能
__cpp_lib_format 202306L (C++26) 成员 visit

[edit] 示例

[edit] 另请参阅

提供对所有格式化参数访问权限的类
(类模板) [edit]