当前位置:编程学习 > C/C++ >>

function object研究之list_av_N

已经走了好远好远,现在开始回到我们的目标list_av_N模板:

[cpp] 
template<class A1> struct list_av_1 

    typedef typename add_value<A1>::type B1; 
    typedef list1<B1> type; 
}; 
 
template<class A1, class A2> struct list_av_2 

    typedef typename add_value<A1>::type B1; 
    typedef typename add_value<A2>::type B2; 
    typedef list2<B1, B2> type; 
}; 
 因此知道当A1是boost::arg<1>的时候,B1也就是boost::arg<1>

list1<B1> 就是一个类型,通过继承storage1<B1>来获得拥有a1_()静态成员函数的能力。

 

list_av_2依此类推,比list_av_1多拥有B2类型(也就是boost::arg<2>)和 a2_()静态成员函数。

获得这些能力都是在编译期。这种实现手法比Moder C++ Design写法简单,好处是容易理解,坏处是代码写的很多很多。

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,