使用来自 std::integer_sequence 的模板参数调用模板

Calling a template with template parameters from a std::integer_sequence

挠我的头。鉴于我有以下整数序列:

std::integer_sequence<int,0,1,2>

我有以下模板:

template<int a, int b, int c> void myFunction() {}

有没有办法调用整数序列作为模板参数的模板?

myFunction<std::integer_sequence<int,0,1,2>>();这个编译不了

我在 stack overflow 上找到了一些如何将整数序列作为函数参数传递的示例,但不幸的是,这不是我的选择。 我也不能使用参数包,因为我已经在同一上下文中为其他事物使用了参数包。

我正在使用 C++17

非常感谢您的帮助!

您可以编写一个辅助模板,例如

template<typename T, T... I>
auto helper(std::integer_sequence<T, I...>)
{
    myFunction<I...>();
}

然后称它为

helper(std::integer_sequence<int,0,1,2>{});

LIVE