Я ищу что-то подобное:
template< typename T>
void func(T t)
{
}
template< typename... Parms>
void anyFunc( Parms... p)
{
func<Parms>(p)... ; //error
func(p)... ; //error
}
Если расширение пакета параметров выполняется внутри другого вызова функции, оно работает:
template< typename T>
int some(T t)
{}
template< typename... Parms>
void func(Parms ...p)
{}
template< typename... Parms>
void somemore(Parms... p)
{
func( some(p)...);
}
int main()
{
somemore(1,2,3,4,10,8,7, "Hallo");
}
Расширение пакета параметров также будет работатьдля списка инициализаторов базового класса.
Есть ли какое-либо решение, которое также будет работать для функций, которые будут возвращать 'void'.Приведенный выше обходной путь не сработает, хотя вызовы функций, возвращающие void внутри списка параметров, никогда не сработают.
Есть идеи?