我正在尝试创建一个递归参数包函数,如下所示:
template <class T, class ... Ts>
void myFunction()
{
execute<T>();
myFunction<Ts...>();
}
Run Code Online (Sandbox Code Playgroud)
这不会编译并出现错误:
error C2672: 'Test::myFunction': no matching overloaded function found.
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做我想要实现的目标?谢谢
如果您可以使用 C++17 或更高版本,则可以跳过递归并使用折叠表达式,例如
template<class... Ts>
void myFunction()
{
(execute<Ts>(), ...);
}
Run Code Online (Sandbox Code Playgroud)