名前空間
変種
操作

std::basic_format_arg

From cppreference.com
< cpp‎ | utility‎ | format
 
 
 
 
ヘッダー <format> で定義
template< class Context >
class basic_format_arg;
(C++20以降)

書式設定引数へのアクセスを提供します。

basic_format_arg オブジェクトは通常 std::make_format_args によって作成され、std::visit_format_arg または visit メンバ関数(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

目次

[編集] メンバクラス

(C++20)
ユーザー定義型のオブジェクトの書式設定を可能にする型消去ラッパー
(public メンバクラス)

[編集] メンバ関数

(コンストラクタ)
(C++20)
std::basic_format_arg を構築します
(public member function)
operator bool
(C++20)
現在のオブジェクトが書式設定引数を保持しているかチェックします
(public member function)
visit
(C++26)
格納されている書式設定引数を訪問します
(public member function)

[編集] 非メンバ関数

(C++20) (C++26で非推奨)
ユーザー定義フォーマッタのための引数訪問インターフェース
(関数テンプレート) [編集]

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 を返します。

std::basic_format_arg::visit

template< class Visitor >
decltype(auto) visit( this basic_format_arg arg, Visitor&& vis );
(1) (C++26以降)
template< class R, class Visitor >
R visit( this basic_format_arg arg, Visitor&& vis );
(2) (C++26以降)

visarg に含まれるオブジェクトに適用します。

visit 関数は、呼び出し時にオブジェクトのコピーが使用されるため、呼び出された basic_format_arg オブジェクトを変更しません。

1) return std::visit(std::forward<Visitor>(vis), v); と等価です。ここで varg に格納されている std::variant です。
2) return std::visit<R>(std::forward<Visitor>(vis), v); と等価です。ここで varg に格納されている std::variant です。

[編集] 備考

機能テストマクロ 規格 機能
__cpp_lib_format 202306L (C++26) メンバ visit

[編集]

[編集] 参照

すべてのフォーマット引数へのアクセスを提供するクラス
(クラステンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)