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 различными параметрами, например так:
template < typename T0 > struct thingy<T0> { ... };
template < typename T0, typename T1 > struct thingy<T0,T1> { ... };
etc...
С реализацией вызова в каждой.