std::basic_format_args
来自cppreference.com
在标头 <format> 定义
|
||
template< class Context > class basic_format_args; |
(1) | (C++20 起) |
using format_args = basic_format_args<std::format_context>; |
(2) | (C++20 起) |
using wformat_args = basic_format_args<std::wformat_context>; |
(3) | (C++20 起) |
提供到格式化参数的访问。
成员函数
(构造函数) |
构造 basic_format_args 对象 (公开成员函数) |
get |
返回位于给定索引的格式化参数 (公开成员函数) |
std::basic_format_args::basic_format_args
template< class... Args > basic_format_args( const /*format-arg-store*/<Context, Args...>& store ) noexcept; |
||
从调用 std::make_format_args 或 std::make_wformat_args 的结果构造 basic_format_args
对象。
std::basic_format_args::get
std::basic_format_arg<Context> get( std::size_t i ) const noexcept; |
||
返回保有 args
中第 i
个参数的 std::basic_format_arg,其中 args
是传递给 std::make_format_args 或 std::make_wformat_args 的形参包。
若无这种参数(即 *this 为默认构造或 i 不小于格式化参数个数),则返回默认构造的 std::basic_format_arg(保有 std::monostate 对象)。
推导指引
template< class Context, class... Args > basic_format_args( /*format-arg-store*/<Context, Args...> ) -> basic_format_args<Context>; |
(C++20 起) | |
注解
std::basic_format_args
拥有引用语义。程序员负责确保 *this 不会比 store 活得更久(从而不应比 std::make_format_args 或 std::make_wformat_args 的参数存活更久)。
示例
本节未完成 原因:暂无示例 |
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
P2216R3 | C++20 | 由于 vformat_to 的过度参数化提供了 format_args_t
|
已移除 |
LWG 3810 | C++20 | basic_format_args 没有推导指引
|
已添加 |
LWG 4106 | C++20 | basic_format_args 曾为可默认构造
|
移除了默认构造函数 |
参阅
(C++20) |
提供对用户定义格式化器的格式化参数的访问的类模板 (类模板) |