c++ - 使用声明从可变参数模板 arg 给出的所有基类继承构造函数
问题描述
如果我从一个或多个类派生,我可以使用using
声明继承构造函数。
例子:
struct A
{
A(int){}
A(){}
};
struct B
{
B(char){}
B(){}
};
struct All: public A,public B
{
using A::A;
using B::B;
};
如果我想在模板类中做同样的事情,其中基类由可变参数模板参数给出,我该如何使用 using 声明?
示例(同上,但使用模板类继承)
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...;
};
推荐阅读
- node.js - 从 npm 传递键值参数
- javascript - 通过 webview (iframe) 将 javascript 鼠标事件传递到下面的另一个 webview (iframe)
- django - 为什么我现在不能激活我的 Django 虚拟环境?
- scala - 有没有办法改变 spark-submit 的输出格式
- git - 从 bitbucket 存储库克隆/推送/拉取错误:403
- vb.net - 当按下 2 个单选按钮时,使某个按钮出现
- reactjs - 在哪里运行组件特定的 saga?
- android - target="_blank" 链接在 PWA 中打开,而不是在 Android 的浏览器中打开
- ios - 从网络的标题部分视图中加载 UIImageView 的图像
- python - 尝试从 PyCharm 访问 Flask 包时出现 ModuleNotFoundError