问题标签 [rtti]
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.
delphi - DataSnap 2010 中的通用请求函数?
这是我正在尝试构建的更通用的客户端函数,它将允许我调用返回 TDBXReader 的不同服务器端过程。现在它有效,但我面临几个问题,我需要你的帮助:
- (最重要的)你怎么看这种方法?有什么建议/建议吗?
- 如何释放 vLClient(实际上是 TSrvMethodClient)?
- 为什么我不允许将第二个参数传递给 Create 方法?
谢谢你。
c++ - 从动态类型信息创建新对象
在 C++ 中,有没有办法查询对象的类型,然后使用该信息动态创建相同类型的新对象?
例如,假设我有一个简单的 3 类层次结构:
现在假设我给你一个转换为 Base 类型的对象——它实际上是 Foo 类型。有没有办法查询类型并使用该信息稍后创建 Foo 类型的新对象?
c++ - RTTI 的 Boost 库
我应该使用哪个 boost 库在我的项目中实现 RTTI?是状态图库吗?
delphi - 如何为整个项目设置 $RTTI 指令?
我正在将一个旧项目从 Delphi 2007 迁移到 Delphi 2010。我发现的一件事是生成的可执行文件的大小增加了一倍多,而原来的文件已经很大了。(超过 50 MB。)我怀疑其中很大一部分与扩展 RTTI 有关。
由于该项目早于 Delphi 2010,它不会在任何地方使用扩展的 RTTI,我想保守地包含它。有没有办法使用“项目选项”对话框全局设置{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
为默认值?我本来希望在$WEAKLINKRTTI
某个地方有这个(和)的选项,但我没有看到它们。
有谁知道这是否可以通过“传递给编译器的附加选项”字段或其他方式来完成?我真的不想为项目中的每个单元添加包含文件,因为它们有几千个......
c++ - 我可以解开 GCC 的 RTTI 名称吗?
使用 gcc,当我使用 typeid 请求对象/变量的类型时,我从 type_info::name 方法得到的结果与我期望在 Windows 上得到的结果不同。我搜索了一下,发现 RTTI 名称是特定于实现的。
问题是,我想获得一个类型的名称,因为它将在 Windows 上返回。是否有捷径可寻?
c++ - 指向 typeinfo::name() 的内存生命周期是多少?
在 C++ 中,我可以使用typeid
运算符来检索任何多态类的名称:
返回的const char*
指针指向的字符串对我的程序可用多长时间?
delphi - 如何在 Delphi 2010 中使用 RTTI 设置任意类型的事件处理程序?
阅读文章后如何通过新的 RTTI 设置事件处理程序?,我想知道是否可以更动态地解决这个问题。例如,我想将任何组件的所有事件处理程序设置为零。
使用TValue.From <TNotifyEvent> (SomeMethod)
不起作用有两个原因:1. 类型未知(可能是 TNotifyEvent、TMouseEvent 等) 2. 我无法将“SomeMethod”设置为 nil(无效转换)
在旧的 RTTI 风格中,我会做类似的事情:
delphi - Delphi 2010 RTTI:探索枚举
考虑这样的枚举:
其中 XmlName 是一个自定义属性,用于定义此枚举成员的序列化字符串。
如何探索附加到此枚举的每个成员的属性?
delphi - 未命名数据类型上没有 RTTI
如果类型未命名,AFAIK 编译器不会生成 RTTI。例如:T = 整数的数组[0..1,0..1];在这种情况下,可以知道数组的总大小,但不可能知道每个维度的大小。
只有当我使用明确命名的类型时它才有效:T01 = 0..1; T = 整数数组[T01,T01];
我错过了什么?
测试代码:
delphi - Delphi 2010 RTTI:使用 TValue 存储数据
我希望能够使用 TValue 将数据存储在 TList<> 中。像 :
稍后,在主程序中,我使用我的“流利的”xml builder,如下所示:
在第二次调用时,程序引发访问冲突异常。
看起来第一个 TValue 已被“释放”。真的可以使用 TValue 在运行时存储“变体”数据吗?
我知道 Delphi 中存在变体。我的 XML 构建器将用于使用 RTTI 将本机 delphi 对象(反)序列化为 XML,因此我将在任何地方使用 TValue。
问候,
——皮埃尔·雅格