使用 delcaration 从可变参数模板 arg 给出的所有基础 类 继承构造函数

using delcaration to inherit constructors from all base classes given by variadic template arg

如果我从一个或多个 classes 派生,我可以使用 using 声明继承构造函数。

示例:

struct A
{
    A(int){}
    A(){}
};

struct B
{
    B(char){}
    B(){}
};

struct All: public A,public B
{
    using A::A;
    using B::B;
};

如果我想在模板 class 中做同样的事情,其中​​基础 classes 由可变参数模板参数给出,我如何使用 using 声明?

示例(同上,但使用模板class继承)

template < typename ... P>
struct All2: public P...
{
    using P...::P...; ??? is there a syntax available to "use" the constructors from all base classes?
};

主要可以是这样的:

int main()
{
    All all1(1);
    All2<A,B> all2(2);
}
template < typename ... P>
struct All2: public P...
{
    using P::P...;
};