私はそのようなものを探しています:
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を返す関数呼び出しを使用すると機能しません。
何か案は?