Loki库中GenScatterHierarchy类继承体系

Loki中关于层次结构的生成

※:
我们是否能够写出基类可以灵活变画的继承体系?

讨论:
☆:
编程的本质就是muli choice test。从这一点上讲,基类可灵活变化这个题眼是有意义的。
☆☆:
继承的写法是渐进进化的:
 A :pulibc B
 template<typename Derived> A :public Derived
 到我们现在要讨论的新的做法。

template<typename D1,typename D2> A: public base_select<D1,D2,A>

template<typename D1,typename D2,typename slector>
struct base_select;

特化处理.....
template<>
struct base_select<A,B,C> : public A{};
struct base_select<D,B,C> : public B{};

部分化处理....

☆☆☆:
第二项是有具体例子的,GenScatterHierarchy就是一个很好的实证。

    template <class TList, template <class> class Unit>
    class GenScatterHierarchy;
    
    template <class T1, class T2, template <class> class Unit>
    class GenScatterHierarchy<Typelist<T1, T2>, Unit>
        : public GenScatterHierarchy<T1, Unit>
        , public GenScatterHierarchy<T2, Unit>

    template <template <class> class Unit>
    class GenScatterHierarchy<NullType, Unit>

    template <class AtomicType, template <class> class Unit>
    class GenScatterHierarchy : public Unit<AtomicType>

也就是将基类继承的规则单单地拿了出来。这很符合one rule,one sentence这个规则。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值