template <int I> struct int_ {};
template < typename ... Pack >
struct thingy
{
void call()
{
f(???);
}
};
インスタンス化すると、次のようになります。
struct thingy<int,char,double>
{
void call()
{
f(int, int_<1>(), char, int_<2>(), double, int_<3>());
}
}
あなたはどう思いますか?どのように?
私が考えることができる唯一のことは、次のように N 個の異なるパラメーターを使用して、thingy のオーバーロードを設定することです。
template < typename T0 > struct thingy<T0> { ... };
template < typename T0, typename T1 > struct thingy<T0,T1> { ... };
etc...
それぞれに呼び出しの実装があります。