[英]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.