问题标签 [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.

0 投票
1 回答
624 浏览

delphi - DataSnap 2010 中的通用请求函数?

这是我正在尝试构建的更通用的客户端函数,它将允许我调用返回 TDBXReader 的不同服务器端过程。现在它有效,但我面临几个问题,我需要你的帮助:

  • 最重要的)你怎么看这种方法?有什么建议/建议吗?
  • 如何释放 vLClient(实际上是 TSrvMethodClient)?
  • 为什么我不允许将第二个参数传递给 Create 方法?

谢谢你。

0 投票
8 回答
17958 浏览

c++ - 从动态类型信息创建新对象

在 C++ 中,有没有办法查询对象的类型,然后使用该信息动态创建相同类型的新对象?

例如,假设我有一个简单的 3 类层次结构:

现在假设我给你一个转换为 Base 类型的对象——它实际上是 Foo 类型。有没有办法查询类型并使用该信息稍后创建 Foo 类型的新对象?

0 投票
3 回答
3200 浏览

c++ - RTTI 的 Boost 库

我应该使用哪个 boost 库在我的项目中实现 RTTI?是状态图库吗?

0 投票
5 回答
4036 浏览

delphi - 如何为整个项目设置 $RTTI 指令?

我正在将一个旧项目从 Delphi 2007 迁移到 Delphi 2010。我发现的一件事是生成的可执行文件的大小增加了一倍多,而原来的文件已经很大了。(超过 50 MB。)我怀疑其中很大一部分与扩展 RTTI 有关。

由于该项目早于 Delphi 2010,它不会在任何地方使用扩展的 RTTI,我想保守地包含它。有没有办法使用“项目选项”对话框全局设置{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}为默认值?我本来希望在$WEAKLINKRTTI某个地方有这个(和)的选项,但我没有看到它们。

有谁知道这是否可以通过“传递给编译器的附加选项”字段或其他方式来完成?我真的不想为项目中的每个单元添加包含文件,因为它们有几千个......

0 投票
3 回答
2090 浏览

c++ - 我可以解开 GCC 的 RTTI 名称吗?

使用 gcc,当我使用 typeid 请求对象/变量的类型时,我从 type_info::name 方法得到的结果与我期望在 Windows 上得到的结果不同。我搜索了一下,发现 RTTI 名称是特定于实现的。

问题是,我想获得一个类型的名称,因为它将在 Windows 上返回。是否有捷径可寻?

0 投票
2 回答
364 浏览

c++ - 指向 typeinfo::name() 的内存生命周期是多少?

在 C++ 中,我可以使用typeid运算符来检索任何多态类的名称:

返回的const char*指针指向的字符串对我的程序可用多长时间?

0 投票
1 回答
1761 浏览

delphi - 如何在 Delphi 2010 中使用 RTTI 设置任意类型的事件处理程序?

阅读文章后如何通过新的 RTTI 设置事件处理程序?,我想知道是否可以更动态地解决这个问题。例如,我想将任何组件的所有事件处理程序设置为零。

使用TValue.From <TNotifyEvent> (SomeMethod)不起作用有两个原因:1. 类型未知(可能是 TNotifyEvent、TMouseEvent 等) 2. 我无法将“SomeMethod”设置为 nil(无效转换)

在旧的 RTTI 风格中,我会做类似的事情:

0 投票
6 回答
3985 浏览

delphi - Delphi 2010 RTTI:探索枚举

考虑这样的枚举:

其中 XmlName 是一个自定义属性,用于定义此枚举成员的序列化字符串。

如何探索附加到此枚举的每个成员的属性?

0 投票
2 回答
554 浏览

delphi - 未命名数据类型上没有 RTTI

如果类型未命名,AFAIK 编译器不会生成 RTTI。例如:T = 整数的数组[0..1,0..1];在这种情况下,可以知道数组的总大小,但不可能知道每个维度的大小。

只有当我使用明确命名的类型时它才有效:T01 = 0..1; T = 整数数组[T01,T01];

我错过了什么?

测试代码:

0 投票
1 回答
3021 浏览

delphi - Delphi 2010 RTTI:使用 TValue 存储数据

我希望能够使用 TValue 将数据存储在 TList<> 中。像 :

稍后,在主程序中,我使用我的“流利的”xml builder,如下所示:

在第二次调用时,程序引发访问冲突异常。

看起来第一个 TValue 已被“释放”。真的可以使用 TValue 在运行时存储“变体”数据吗?

我知道 Delphi 中存在变体。我的 XML 构建器将用于使用 RTTI 将本机 delphi 对象(反)序列化为 XML,因此我将在任何地方使用 TValue。

问候,

——皮埃尔·雅格