对于用C++开发的规则引擎,其核心特征之一就是值类型。到目前为止,我所拥有的有点像 COM 风格的 VARIANT——每个值都知道它的类型。类型转换有一些规则,但是有点乱。
我想知道是否有我可以使用的很好的嵌入式值类来解决这个问题,而不需要我使用整个预构建系统。例如,也许 boost 有什么东西?
最佳答案
正在寻找 boost::any或 boost::variant ?
基本上有三种类型的变体实现:
- 一种可以在类型之间自由转换的类型(想想非类型化语言)——
boost::lexical_cast
是你的 friend ,或者boost::variant
... - 一种可以容纳任何类型但类型安全的类型——例如用
int
初始化,保持int
并且不允许像其他任何东西一样隐式处理 - 这是boost::any
类型 - 邪恶的 allow anything 类型 -- 强制转换为你想要的类型而不进行错误检查,不保留类型信息 -- 想想
void*
关于c++ - 创建一个简单的脚本 'language' - 类似 VARIANT 的值类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2037315/