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; |
||
返回一個 std::basic_format_arg,它持有 args
中第 i 個引數,其中 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 的生命週期更長(而 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) |
為使用者定義格式化器提供格式化引數訪問的類模板 (類模板) |