使用来自 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>{});
挠我的头。鉴于我有以下整数序列:
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>{});