我要尋找類似的東西:可變參數模板參數包擴大函數調用
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'),並使用某種僅僅「吃」其參數的虛擬函數。類似[this](http://ideone.com/fFyPT)。不過,懷疑這是你想要的。 :) – Vitus