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