Function
#include <boost/spirit/home/phoenix/function/function.hpp>
Phoenix 中的 function 可不是 boost 的泛型函数指针,它是用来帮助你实现 lazy function 的。把一个自己的函数实现成 lazy function 的主要好处就是,它可以和 Phoenix 的其它模块和谐共处。这个我们先按下不表,以后用到的时候,再详细解释。
Operator
#include <boost/spirit/home/phoenix/operator.hpp>
这个模块重载了几乎所有可以重载的 C++ 操作符,提供的当然是它们的 lazy 版本。事实上,正是由于有了这些 lazy operators,上一篇中这样的代码才成为可能:
std::generate(v.begin(), v.end(), ref(i)++)
std::for_each(v.beg