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++ ,