在一个地方继承和typedef(使用)

时间:2017-04-30 03:53:05

标签: c++ inheritance c++14 typedef

为了可维护性,是否可以在一个地方继承一个类并键入它?

class B{};
template<class T1,class T2> class D{};//In real case, it has 5+ parameters
template<class T2>class E: public D<B,T2> {   //duplicate D<B,T2>
    using super=D<B,T2>;                      //duplicate D<B,T2>
    //.... a lot of refererence to "super" (e.g. SNIFAE, static_assert)
};

我梦见了类似的东西: -

template<class T2>class F: using super= public D<B,T2> {
};

我试图避免使用宏 到目前为止,我没有发现任何有关它的问题,但也没有找到一些确认不可能的确认。

2 个答案:

答案 0 :(得分:2)

你真的不能这样做。但是你可以避免使用

重新输入所有模板参数
using super = typename E::D;

答案 1 :(得分:1)

  

为了可维护性,是否可以在一个地方继承一个类并键入它?

如果不使用宏,就无法做到这一点。

不要为小东西出汗。 这是小事