Я ищу что-то вроде этого:
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 внутри списка параметров, никогда не сработают.
Есть идеи?