c++ - 创建一个简单的脚本 'language' - 类似 VARIANT 的值类型

标签 c++ variant

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

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

最佳答案

正在寻找 boost::anyboost::variant

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

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

关于c++ - 创建一个简单的脚本 'language' - 类似 VARIANT 的值类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2037315/

相关文章:

c++ - 收集2 : ld returned 1 exit status error

c++ - move std::vector 时出现段错误

c++ - std::variant 和 std::visit: 错误:没有名为 'valueless_by_exception' 的成员

c++ - 优化 std::visit 可能吗?

types - Variant 与 ListVariant 类型

android - 在我的 Android NDK 应用程序中添加 libstagefright

c++ - ExprTk:当表达式的值改变时是否必须重新编译表达式

c++ - 了解 GNU 科学图书馆文档

c++ - 在 1_54 中破坏了 boost 变体?

c++ - 如何将自定义结构传递到 C++(非 CLI)中的 _variant_t?