繁体   English   中英

模板类是否可以基于参数包从多个父级继承?

[英]Is it possible for template-class to inherit from multiple parents based on parameter pack?

我想实现这样的目标:

class C: public Wrapper<C1>, public Wrapper<C2>, public Wrapper<C3> ..... {}

...但是将任意数量的 Cx 作为可变参数模板参数传递给 class C:

template<typename... Cx>
class C: // ???????????????

可能吗? 有什么解决方法吗?

是的,这是可能的:

struct A {};
struct B {};

template <typename ...P>
struct C : P... {};

int main() {
    C<A,B> c;
}

或使用包装器:

template <typename T>
struct Wrapper {};

template <typename ...P>
struct C : Wrapper<P>... {};

在这里您可以找到一个在std::visit的上下文中应用相同的示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM