使用 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...;
};
如果我从一个或多个 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...;
};