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

Boost Phoenix 入门 (2)

热度:8   发布时间:2023-12-08 09:20:31.0

Phoenix 库有着优雅的设计,它的11个模块分为4层,模块的功能之间完全正交,没有循环依赖。低层模块不依赖高层模块,同一层的模块之间也不互相依赖。这意味着用户可以自由选用自己需要的模块,而不需要把其余部分包含进来。

 

Core

位于 Phoenix 库最底层(第一层)的是 Actor 模块,它是对于 Phoenix functor 的原型定义,做了一个 functor 最基本的工作:重载 operator()。
Actor 分为两种:Primitives 和 Composites,这两个模块构成 Phoenix 库的第二层。第一层和第二层称为 Phoenix 的 Core。

Primitives 提供了 Phoenix 库的功能“砖头”,而 Composites 则是“水泥”,把砖头粘接起来形成更大的功能块。

 

功能模块

Primitives 包括3种:Function,Operator 和 Statement。
Function --- 用来支持 Lazy functions (例如 add)
Operator --- 用来支持 Lazy operators (例如 +)
Statement --- 用来支持 Lazy statements (例如 if_, while_)
Composites 也包括3种:Object,Scope 和 Bind。
Object --- 支持 Lazy cast(例如 static_cast_)以及对象的创建和销毁(new_ 和 delete_)
Scope --- 支持作用域,本地变量和 lambda-lambda