有条件地选择要继承的类
Conditionally to choose which classes to inherit
所以,我有一个菱形层次结构。
class Base {
// ...
}
class Derived_A : public Base {
// ...
}
class Derived_B : public Base {
// ...
}
class Join : public Derived_A, public Derived_B {
// ...
}
根据模板变量,我想有条件地选择继承a和/或B
template<bool HAS_A, bool HAS_B>
class Join : public Derived_A, // enable if HAS_A
public Derived_B // enable if HAS_B
{
// ...
}
我尝试使用std::enable_if_t
,但我不确定当它的布尔值为false
时是否有效。
指定基类而不是使用bool
作为模板参数似乎更简单。例如
template<class... Base> class Join : public Base... {};
然后像使用Join<Derived_A, Derived_B>
、Join<Derived_A>
、Join<Derived_B>
和Join<>
一样使用它(不继承任何内容(。
相关文章:
- 继承函数的重载解析
- 如何使用默认参数等选择模板专业化
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 继承期间显示未知行为的子类
- 选择要调用的构造函数
- 头文件-继承c++
- C++选择排序算法中的逻辑错误
- 为什么在保护模式下继承升级不起作用
- QTreeView幻灯片多选后无法使用单击选择
- 通过继承类使用来自不同命名空间的运算符
- 无法获取菜单选择以运行函数.C++
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 子目录是否继承属性,例如add_definitions,include_directories和父Cmakelist.t
- 混合组合和继承的C++问题
- 继承:构造函数,初始化C++11中基类的类C数组成员
- 在多重继承的情况下选择 VPTR
- 在运行时使用继承的代码选择器
- 我如何使用 no除非我从继承列表中选择特定的隐藏函数
- c++继承优先级选择函数
- 何时选择基于模板策略的设计,而不是基于非模板继承的设计