Namespaces
Variants

std:: basic_format_arg

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

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

basic_format_arg オブジェクトは通常、 std::make_format_args によって作成され、 std::visit_format_arg または visit メンバ関数を通じてアクセスされます (C++26以降)

A 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)
ユーザー定義型のオブジェクトをフォーマット可能にする型消去ラッパー
(公開メンバークラス)

メンバー関数

(コンストラクタ)
(C++20)
std::basic_format_arg を構築する
(公開メンバ関数)
operator bool
(C++20)
現在のオブジェクトがフォーマット引数を保持しているかチェックする
(公開メンバ関数)
visit
(C++26)
含まれるフォーマット引数を訪問する
(公開メンバ関数)

非メンバー関数

(C++20) (deprecated in 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以降)

arg に含まれるオブジェクトにビジター vis を適用します。

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

1) 以下と等価です: return std:: visit ( std:: forward < Visitor > ( vis ) , v ) ; 。ここで v arg に含まれる std::variant です。
2) 以下と等価です: return std:: visit < R > ( std:: forward < Visitor > ( vis ) , v ) ; 。ここで v arg に含まれる std::variant です。

注記

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

関連項目

すべてのフォーマット引数へのアクセスを提供するクラス
(クラステンプレート)