関数テンプレートでは、アリティ (引数の数) に応じて、関数または関数オブジェクトを別の方法で呼び出したいと思います。擬似コード:
if arity(f) == 1:
f(x)
if arity(f) == 2:
f(x, y)
if arity(f) == 3:
f(x, y, z)
これはC++でどのように行うことができますか?
編集難しさを明確にするために:引数が 2 つしかf(x, y, z)
ない場合はコンパイルされずf
、逆に引数が 3 つ必要なf(x, y)
場合はコンパイルされませんf
。