问题标签 [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.
c++ - 创建简单的脚本“语言” - 类似 VARIANT 的值类型
对于用 C++ 开发的规则引擎,其核心特性之一是值类型。到目前为止,我所拥有的有点像 COM 风格的 VARIANT——每个值都知道它的类型。类型转换有一些规则,但有点混乱。
我想知道是否有我可以使用的不错的插入式值类来解决这个问题,而不需要我使用整个预构建的系统。例如,也许 boost 有什么东西?
c++ - C++ 模板变体中的类型数量是否有限?
我试图了解变体是如何实现的,并阅读:
http://www.codeproject.com/KB/cpp/TTLTyplist.aspx
而且我的印象是我无法编写采用 X 类型的变体;但是模板编写者选择了一些 N,而我在一个变体中只能有少于 N 个类型。
它是否正确?
谢谢!
c++ - 如何在 C++ 中实现基本的 Variant(以及 Variant 上的访问者)模板?
我试过阅读:
但仍然不明白变体是如何实现的。任何人都可以粘贴一个关于如何定义类似内容的简短示例:
谢谢!
c++ - Boost 变体类型的调度是否需要线性时间?
在 boost::variant 上调度的效率如何?
如果它是一个 switch 语句,它应该只需要 O(1) 时间,但据我所知,模板元程序只能生成 if's,这将使 boost::variant 调度的运行时开销为 O(n),其中 n = 变体中的类型数。
任何人都可以确认/否认/启发我吗?
谢谢!
windows - 在 C++ 中转换为/从 VARIANT 类型的简单方法
是否有任何易于使用的高级类或库可以让您VARIANT
在 Visual C++ 中与 s 进行交互?
更具体地说,我想在 POD 类型(例如double
, long
)、字符串(例如CString
)和容器(例如std::vector
)和VARIANT
s 之间进行转换。例如:
我(天真地?)假设使用 COM 的人一直都在这样做,所以很可能会有一个方便的库来处理各种转换。但我能找到的只是各种各样的包装类,每个类都转换几种类型:
- _variant_t或CComVariant用于 POD 类型
- _bstr_t、CComBSTR或BSTR用于字符串
- 用于数组的CComSafeArray或SAFEARRAY
有没有什么简单的方法——除了切换到 Visual Basic——来避免这种尴尬的内存管理和按位VT_ARRAY | VT_I4
代码的噩梦?
相关问题:
delphi - VarIsEmpty 和 VarIsEmptyParam 函数有什么区别
刚才在Delphi7工作,发现里面不仅有一个VarIsEmpty
函数,还有一个VarIsEmptyParam
.
由于Delphi的帮助没有给出太多解释:
如果给定的变体表示未分配的可选参数,则 VarIsEmptyParam 返回 true。
如果变体包含任何其他值,则函数结果为假。
我只是想知道是否有人使用过这个功能,如果有,这个功能是如何使用的。
delphi - 在变体记录中包含方法的语法是什么?
我有以下记录定义
我想做的是引入一个变体记录部分,以便能够单独访问三个元素,也可以作为一个数组访问这三个元素,即
这不会编译(函数需要函数长度的结果类型)。有什么明显的我做错了,还是不支持?在这种情况下,对于以数组形式访问各个字段的优雅而高效的方式有什么建议吗?
ps E3FloatT 是 Single 的简单类型别名。
delphi - Delphi 2010变体到unicode问题
我正在使用 Delphi 2010 中的 DLL。它导出一个接收一系列变体的过程。我希望能够采用这些变体之一,并将其转换为字符串,但我不断得到 ?????
我无法更改输入变量 - 它必须是一个变体数组。无法更改调用 DLL 的主机应用程序。它是用 Delphi 2006 编写的。
示例 DLL 代码:
使用 D2006 我的 DLL 工作正常。我试过使用VartoStr
- 没有运气。当我检查时,VarType
我得到一个varString
. 任何建议如何解决这个问题?
build - SCons:如何为程序的多个变体(发布/调试)使用相同的构建器
SCons 用户指南讲述了使用多个构建环境来构建单个程序的多个版本,并给出了以下示例:
而不是手动为使用不同环境编译的对象分配不同的名称,VariantDir()
/variant_dir
听起来是一个更好的解决方案......
但是,如果我将Program()
构建器放在 SConscript 中:
如何将不同的环境导出到同一个 SConscript 文件?
不幸的是,SCons Wiki中的讨论并没有为这个主题带来更多的洞察力。
感谢您的输入!