Namespaces
Variants

std::basic_format_arg<Context>:: handle

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

ユーザー定義型のオブジェクトをフォーマット可能にする型消去ラッパー。

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

目次

翻訳のポイント: - 「Contents」→「目次」に翻訳 - HTMLタグ、属性、 内のC++コード(std::basic_format_arg ::handle::)は翻訳せず保持 - C++専門用語(Data members、Member functions、format、Notes、See also)は翻訳せず保持 - 数値や構造は完全に維持

データメンバ

handle の典型的な実装は TriviallyCopyable であり、2つの非静的データメンバーのみを格納します:

  • フォーマット対象のオブジェクトへの const void * ポインタ、および
  • void ( * ) ( std:: basic_format_parse_context < Context :: char_type > & , Context & , const void * ) 関数ポインタ(下記の format メンバ関数で必要な操作を実行する関数へのポインタ)

メンバー関数

format
(C++20)
参照されるオブジェクトを指定されたコンテキストでフォーマットする
(public member function)

std::basic_format_arg<Context>::handle:: format

void format ( std:: basic_format_parse_context < Context :: char_type > & parse_ctx,
Context & format_ctx ) const ;
(C++20以降)

以下を定義する:

  • T を書式化引数の型、
  • TD std:: remove_const_t < T >
  • TQ を、 const TD __formattable_with < Context > を満たす場合は const TD 、そうでない場合は TD
  • ref を書式化引数への参照とする。

以下と等価: typename Context :: template formatter_type < TD > f ;
parse_ctx. advance_to ( f. parse ( parse_ctx ) ) ;
format_ctx. advance_to ( f. format ( const_cast < TQ & > ( static_cast < const TD & > ( ref ) ) , format_ctx ) ) ;

注記

handle はフォーマットされた引数に対して参照セマンティクスを持ち、その寿命を延長しません。引数が handle よりも長く存続することを保証するのはプログラマの責任です。通常、 handle はフォーマット関数内でのみ使用されます。

関連項目

ユーザー定義フォーマッタのための書式設定引数へのアクセスを提供するクラステンプレート
(クラステンプレート)
すべての書式設定引数を参照する型消去オブジェクトを作成し、 format_args に変換可能
(関数テンプレート)