问题标签 [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 投票
3 回答
3111 浏览

delphi - Delphi 2010:新的 RTTI,将 propertyvalue 设置为任意值

TRTTIProperty.SetValue() 接受一个 TValue 实例,但如果提供的 TValue 实例基于与属性不同的类型,那么事情就会崩溃。

例如

尝试将值转换为字符串也不起作用。

关于如何解决这个问题的任何想法?

更新:

你们中有些人想知道为什么我要为字符串分配一个整数,我将尝试解释一下。(实际上,我更有可能将字符串分配给整数,但这并不相关......)

我想要完成的是在 gui 和模型之间建立一个一般的“中间人”。我想以某种方式将 textedit 字段连接到属性。我希望新的 RTTI/TValue 东西能为我带来一些魔力,而不是为我拥有的每个模型都做这样的中间人。

我也是泛型的新手,所以我不确定泛型如何提供帮助。是否可以在运行时使用动态确定的类型实例化泛型,还是编译需要知道?

例如

也许魔法时代还没有到来……我想我可以用几个大箱子结构来应付……

0 投票
4 回答
3857 浏览

delphi - RTTI:我可以按名称获取类型吗?

给定一个包含类型名称的文本字符串,是否有某种方法可以获取适当的类型本身?

我想做这样的事情:

我在网上查看了几个 RTTI 解释并查看了 Delphi 单元,但没有看到我在寻找什么。这可能吗?

0 投票
2 回答
259 浏览

delphi - 通过新的 RTTI [D2010] 使用索引属性时出现问题

上面的代码失败,因为 .GetProperty 对“字符串”、“对象”、“值”(带有索引器的属性)等属性返回 nil。我认为这是一个已知的限制,问题是是否有任何方法可以访问这些索引属性(最好不要回退到旧的 RTTI 实用程序)。

0 投票
3 回答
2509 浏览

c++ - 为什么 type_info 在命名空间 std 之外声明?

我正在使用 VS2005 和 STL 的 MS 实现。但是,类 type_info in 在“命名空间标准”之外声明。这给除了查找 std::type_info 的第三方库带来了一些问题。为什么会这样,有什么解决方法吗?这是 typeinfo 开头的示例:

0 投票
1 回答
2495 浏览

delphi - 如何使用delphi 2010 rtti设置数组长度

如何在运行时设置数组长度?setLength(t.GetProperty('Propertys'),3); ???

编辑:

此代码更改了数组的长度,但错误。是随机值而不是 5。 (19736192)

编辑2:

@Robert Love,感谢您的回复,但问题仍然存在。(Embarcadero® Delphi® 2010 版本 14.0.3513.24210)

点击button2无效的指针操作。

0 投票
2 回答
6993 浏览

c++ - 在抽象基类上使用 __declspec(novtable) 是否会以任何方式影响 RTTI?

或者,使用 __declspec(novtable) 是否还有其他已知的负面影响?我似乎找不到任何问题的参考。

0 投票
1 回答
3104 浏览

visual-c++ - CException::`VC++ 应用程序中的 RTTI 完整对象定位器

你好

在我的 VC++ 应用程序中,我似乎偶尔会收到 CException::`RTTI Complete Object Locator 异常。

你们有谁知道为什么会发生这种特殊异常。

我在调用 GetLocaleInfo() WINDOWS API 时得到了这个。

任何帮助都会很棒。

谢谢

0 投票
2 回答
3338 浏览

c++ - typeid 什么时候可以为同一类型返回不同的 type_info 实例?

Andrei Alexandrescu在Modern C++ Design中写道:

返回的对象typeid具有静态存储,因此您不必担心生命周期问题。

安德烈继续说:

该标准不保证每次调用typeid(int) 都会返回对同一 type_info对象的引用。

尽管标准不保证这一点,但在 GCC 和 Visual Studio 等常见编译器中是如何实现的?

假设typeid不泄漏(并且每次调用都返回一个新实例),它是每个应用程序、每个翻译单元、每个 dll/so 的一个“表”,还是完全不同的东西?

有时间&typeid(T) != &typeid(T)吗?

我主要对 Windows 的编译器感兴趣,但也感谢 Linux 和其他平台的任何信息。

0 投票
2 回答
2223 浏览

c++ - C++ RTTI 和派生类

我的 C++ 有点生疏了。这是我正在尝试做的事情:

第一个问题:

两者都返回 Cmd * 类型。我想要的结果是 CmdA* 和 CmdB*。除了:

其次,我想做这样的事情:

并获得输出“Cmd A”和“Cmd B”。现在它打印出“通用命令...”两次。

谢谢

0 投票
1 回答
681 浏览

c++ - 哪种设计模式/RTTI

我正在寻找将对象分派到正确的“目标”对象的最佳方法。

我有一个基本命令类:Cmd,两个子类:BufferCmd 和 StateCmd。命令“GotoLine”派生自 BufferCmd,“ChangeCmd”派生自 StateCmd。BufferCmds 旨在转到 Buffer 类,而 StateCmds 旨在转到 State 对象。

我目前设置了访客模式,以便可以执行以下操作:

我想使用访问者模式,因为我希望能够做一些大致如下的事情:

不幸的是,为了使用它,我需要知道将命令发送到哪个对象。我希望能够做这样的事情:

是否有最适合这种情况的模式?我什至应该使用访客模式吗?显然我想避免这种情况:

谢谢