名稱空間
變體
操作

std::basic_format_args

來自 cppreference.com
< cpp‎ | utility‎ | format
 
 
 
 
定義於標頭檔案 <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_argsstd::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_argsstd::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_argsstd::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 是預設可構造的 已移除預設建構函式

[編輯] 參見

為使用者定義格式化器提供格式化引數訪問的類模板
(類模板) [編輯]