对于用 C++ 开发的规则引擎,其核心特性之一是值类型。到目前为止,我所拥有的有点像 COM 风格的 VARIANT——每个值都知道它的类型。类型转换有一些规则,但有点混乱。
我想知道是否有我可以使用的不错的插入式值类来解决这个问题,而不需要我使用整个预构建的系统。例如,也许 boost 有什么东西?
基本上有三种类型的变体实现:
boost::lexical_cast
在这里是你的朋友,或者boost::variant
......int
,保持为 anint
并且不允许像其他任何东西一样被隐式处理——这就是boost::any
类型void*