问题标签 [variant]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
189 浏览

c++ - 创建简单的脚本“语言” - 类似 VARIANT 的值类型

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

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

0 投票
4 回答
1187 浏览

c++ - C++ 模板变体中的类型数量是否有限?

我试图了解变体是如何实现的,并阅读:

http://www.codeproject.com/KB/cpp/TTLTyplist.aspx

而且我的印象是我无法编写采用 X 类型的变体;但是模板编写者选择了一些 N,而我在一个变体中只能有少于 N 个类型。

它是否正确?

谢谢!

0 投票
2 回答
1181 浏览

c++ - 如何在 C++ 中实现基本的 Variant(以及 Variant 上的访问者)模板?

我试过阅读:

但仍然不明白变体是如何实现的。任何人都可以粘贴一个关于如何定义类似内容的简短示例:

谢谢!

0 投票
2 回答
1945 浏览

c++ - 如何将此 c++ 类型列表构建为变体?

这里,

如何修复这个 c++ typelist 模板编译错误?

我们使用现代 c++ 设计中的代码构建了一个类型列表。

现在的问题是——我如何把它构建到一个变体类中?

0 投票
2 回答
698 浏览

c++ - Boost 变体类型的调度是否需要线性时间?

在 boost::variant 上调度的效率如何?

如果它是一个 switch 语句,它应该只需要 O(1) 时间,但据我所知,模板元程序只能生成 if's,这将使 boost::variant 调度的运行时开销为 O(n),其中 n = 变体中的类型数。

任何人都可以确认/否认/启发我吗?

谢谢!

0 投票
1 回答
23340 浏览

windows - 在 C++ 中转换为/从 VARIANT 类型的简单方法

是否有任何易于使用高级类或库可以让您VARIANT在 Visual C++ 中与 s 进行交互?

更具体地说,我想在 POD 类型(例如double, long)、字符串(例如CString)和容器(例如std::vector)和VARIANTs 之间进行转换。例如:

我(天真地?)假设使用 COM 的人一直都在这样做,所以很可能会有一个方便的库来处理各种转换。但我能找到的只是各种各样的包装类,每个类都转换几种类型:

有没有什么简单的方法——除了切换到 Visual Basic——来避免这种尴尬的内存管理和按位VT_ARRAY | VT_I4代码的噩梦?

相关问题:

0 投票
1 回答
1572 浏览

delphi - VarIsEmpty 和 VarIsEmptyParam 函数有什么区别

刚才在Delphi7工作,发现里面不仅有一个VarIsEmpty函数,还有一个VarIsEmptyParam.

由于Delphi的帮助没有给出太多解释:

如果给定的变体表示未分配的可选参数,则 VarIsEmptyParam 返回 true。

如果变体包含任何其他值,则函数结果为假。

我只是想知道是否有人使用过这个功能,如果有,这个功能是如何使用的。

0 投票
2 回答
640 浏览

delphi - 在变体记录中包含方法的语法是什么?

我有以下记录定义

我想做的是引入一个变体记录部分,以便能够单独访问三个元素,也可以作为一个数组访问这三个元素,即

这不会编译(函数需要函数长度的结果类型)。有什么明显的我做错了,还是不支持?在这种情况下,对于以数组形式访问各个字段的优雅而高效的方式有什么建议吗?

ps E3FloatT 是 Single 的简单类型别名。

0 投票
2 回答
2012 浏览

delphi - Delphi 2010变体到unicode问题

我正在使用 Delphi 2010 中的 DLL。它导出一个接收一系列变体的过程。我希望能够采用这些变体之一,并将其​​转换为字符串,但我不断得到 ?????

我无法更改输入变量 - 它必须是一个变体数组。无法更改调用 DLL 的主机应用程序。它是用 Delphi 2006 编写的。

示例 DLL 代码:

使用 D2006 我的 DLL 工作正常。我试过使用VartoStr- 没有运气。当我检查时,VarType我得到一个varString. 任何建议如何解决这个问题?

0 投票
2 回答
2201 浏览

build - SCons:如何为程序的多个变体(发布/调试)使用相同的构建器

SCons 用户指南讲述了使用多个构建环境来构建单个程序的多个版本,并给出了以下示例:

而不是手动为使用不同环境编译的对象分配不同的名称,VariantDir()/variant_dir听起来是一个更好的解决方案......

但是,如果我将Program()构建器放在 SConscript 中:

如何将不同的环境导出到同一个 SConscript 文件?

不幸的是,SCons Wiki中的讨论并没有为这个主题带来更多的洞察力。

感谢您的输入!