对Loki::Tuple的扩展EasyTuple(附Tupleoperator实现)

Tupleoperator的实现也主要用FieldHelper来实现,借用了Loki::TL::IterateTypes的思想
template <int LastLength, class H, template <class> class Operator>
struct TupleOperator
{
    typedef Loki::TL::Length<typename H::TList> lengh;
    typedef Loki::FieldHelper<H,lengh::value-LastLength> head_helper;
    typedef    typename head_helper::ResultType head_t;
    typedef TupleOperator<LastLength-1,H, Operator> tail_t;
    tail_t tail;
    
    void operator()(H& obj)
    {
        Operator<head_t> op;
        op(head_helper::Do(obj));
        tail.operator()(obj);
    }
};

template <class H, template <class> class Operator>
struct TupleOperator<0,H,Operator>
{
    void operator()(H& obj){}
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值