1

对于用 C++ 开发的规则引擎,其核心特性之一是值类型。到目前为止,我所拥有的有点像 COM 风格的 VARIANT——每个值都知道它的类型。类型转换有一些规则,但有点混乱。

我想知道是否有我可以使用的不错的插入式值类来解决这个问题,而不需要我使用整个预构建的系统。例如,也许 boost 有什么东西?

4

1 回答 1

6

寻找boost::anyboost::variant

基本上有三种类型的变体实现:

  1. 可以在类型之间自由转换的类型(想想无类型语言)——boost::lexical_cast在这里是你的朋友,或者boost::variant......
  2. 一种可以容纳任何类型,但类型安全的类型——例如用 an 初始化int,保持为 anint并且不允许像其他任何东西一样被隐式处理——这就是boost::any类型
  3. 邪恶允许任何类型——在没有错误检查的情况下强制转换为你想要的类型,没有保存类型信息——想想void*
于 2010-01-10T14:44:14.847 回答