当前位置: 代码迷 >> 综合 >> Boost Phoenix 入门 (1)
  详细解决方案

Boost Phoenix 入门 (1)

热度:40   发布时间:2023-12-08 09:20:42.0

Phoenix 可以看作是对 Boost Lambda Library 的重新实现。它是作为 Boost.Spirit 的一部分的,但是我们完全可以把它作为单独的库来使用,以达到一些非常酷和方便的效果。

 

基本上,Phoenix 大大方便了在 C++ 中进行 functional programming。当然,由于 C++ 不是函数式语言,我们没有可能进行严格的 functional programming,库的作用也只是让这种风格得到更方便的实现。在 STL 里,我们已经在进行一些 FP,例如对 functor 的利用使得算法的重用性大大提高,而 Phoenix 则让编写 functor 更加自然和简便。

 

val

在下面的代码中,val(3) 和 val("Hello Phoenix") 都是 functor,它们的作用就是返回它们的参数。而且,它们是 lazily evaluated 的。

 

 

输出:

3