不带参数的递归参数包函数 C++

Nio*_*yan 0 c++

我正在尝试创建一个递归参数包函数,如下所示:

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)

有谁知道如何做我想要实现的目标?谢谢

Nat*_*ica 5

如果您可以使用 C++17 或更高版本,则可以跳过递归并使用折叠表达式,例如

template<class... Ts>
void myFunction()
{
    (execute<Ts>(), ...);
}
Run Code Online (Sandbox Code Playgroud)