function object研究之list_av_N

2014-11-24 08:53:15 · 作者: · 浏览: 1

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

[cpp]
template struct list_av_1
{
typedef typename add_value::type B1;
typedef list1 type;
};

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

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

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

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