创建一个简单的脚本化“语言” - 类似VARIANT的值类型

时间:2010-01-10 14:42:20

标签: c++ variant

对于使用C ++开发的规则引擎,其中一个核心功能是值类型。到目前为止,我有点像COM风格的VARIANT - 每个值都知道它的类型。类型转换有一些规则,但它有点乱。

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

1 个答案:

答案 0 :(得分:6)

正在寻找boost::anyboost::variant

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

  1. 可以在类型之间自由投放的类型(想想无类型语言) - boost::lexical_cast是您的朋友,或boost::variant ...
  2. 可以容纳任何类型但类型安全的类型 - 例如使用int初始化,保持int并且不允许像其他任何内容一样隐式处理 - 这是boost::any类型
  3. 邪恶允许任何类型 - 强制转换为您想要的内容而不进行错误检查,不保留类型信息 - 请void*