標準の$ 20.8.2は、標準ライブラリ全体で可変引数リストを使用してcallableを呼び出す方法を説明するために主に使用されるINVOKE機能について説明しています。
INVOKE (f、t1、t2、...、tN) を次のように定義します。
—
(t1.*f)(t2, ..., tN)
f がクラス T のメンバ関数へのポインタであり、t1 が型 T のオブジェクト、型 T のオブジェクトへの参照、または T から派生した型のオブジェクトへの参照である場合。—
((*t1).*f)(t2, ..., tN)
f がクラス T のメンバー関数へのポインターであり、t1 が前の項目で説明されている型のいずれでもない場合。—
t1.*f
N == 1 であり、f がクラス T のメンバ データへのポインタであり、t1 が型 T のオブジェクト、型 T のオブジェクトへの参照、または T から派生した型のオブジェクトへの参照である場合。—
(*t1).*f
N == 1 であり、f がクラス T のメンバ データへのポインタであり、t1 が前の項目で説明されている型のいずれでもない場合。—
f(t1, t2, ..., tN)
その他のすべての場合。
3番目と4番目のアイテムは何ですか? 私が知る限り、呼び出し可能f
であっても呼び出しませんf
。それらのユーザーケースは何ですか。多分それは標準のタイプミスであり、*f()
意図されたものでしょうか?