在 C++ 中是否可以同时递归多个(在我的例子中是两个)参数包?如何?
为了更好地了解我的要求,我目前有一个类模板,如下所示:
template<template<typename> class C, typename... Rest>
class Inherit {};
template<template<typename> class C, typename T, typename... Rest>
class Inherit<C, T, Rest...> :
public C<T>,
public Inherit<C, Rest...>
{
};
Run Code Online (Sandbox Code Playgroud)
我在另一个类中使用这个类模板,该类采用参数包Ts让该类从模板化接口多次继承。例如:
template<typename T>
class Interface
{
...
};
template<typename... Ts>
class Example :
public Inherit<Interface, Ts...>
{
};
Run Code Online (Sandbox Code Playgroud)
现在,我想做的是:
template<typename T, const char* N>
class Interface
{
...
};
template<typename... Ts, const char*... Ns>
class Example :
public Inherit<Interface, Ts..., Ns...>
{
};
Run Code Online (Sandbox Code Playgroud)
我需要一个模板类,它可以递归并立即从和参数包Inherit中选取一个元素(假设参数包和具有相同的长度)。我对模板编程不够熟悉,不知道这是否可能?Ts …