问题标签 [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 - Delphi 2010:新的 RTTI,将 propertyvalue 设置为任意值
TRTTIProperty.SetValue() 接受一个 TValue 实例,但如果提供的 TValue 实例基于与属性不同的类型,那么事情就会崩溃。
例如
尝试将值转换为字符串也不起作用。
关于如何解决这个问题的任何想法?
更新:
你们中有些人想知道为什么我要为字符串分配一个整数,我将尝试解释一下。(实际上,我更有可能将字符串分配给整数,但这并不相关......)
我想要完成的是在 gui 和模型之间建立一个一般的“中间人”。我想以某种方式将 textedit 字段连接到属性。我希望新的 RTTI/TValue 东西能为我带来一些魔力,而不是为我拥有的每个模型都做这样的中间人。
我也是泛型的新手,所以我不确定泛型如何提供帮助。是否可以在运行时使用动态确定的类型实例化泛型,还是编译需要知道?
例如
也许魔法时代还没有到来……我想我可以用几个大箱子结构来应付……
delphi - RTTI:我可以按名称获取类型吗?
给定一个包含类型名称的文本字符串,是否有某种方法可以获取适当的类型本身?
我想做这样的事情:
我在网上查看了几个 RTTI 解释并查看了 Delphi 单元,但没有看到我在寻找什么。这可能吗?
delphi - 通过新的 RTTI [D2010] 使用索引属性时出现问题
上面的代码失败,因为 .GetProperty 对“字符串”、“对象”、“值”(带有索引器的属性)等属性返回 nil。我认为这是一个已知的限制,问题是是否有任何方法可以访问这些索引属性(最好不要回退到旧的 RTTI 实用程序)。
c++ - 为什么 type_info 在命名空间 std 之外声明?
我正在使用 VS2005 和 STL 的 MS 实现。但是,类 type_info in 在“命名空间标准”之外声明。这给除了查找 std::type_info 的第三方库带来了一些问题。为什么会这样,有什么解决方法吗?这是 typeinfo 开头的示例:
delphi - 如何使用delphi 2010 rtti设置数组长度
如何在运行时设置数组长度?setLength(t.GetProperty('Propertys'),3); ???
编辑:
此代码更改了数组的长度,但错误。是随机值而不是 5。 (19736192)
编辑2:
@Robert Love,感谢您的回复,但问题仍然存在。(Embarcadero® Delphi® 2010 版本 14.0.3513.24210)
点击button2无效的指针操作。
c++ - 在抽象基类上使用 __declspec(novtable) 是否会以任何方式影响 RTTI?
或者,使用 __declspec(novtable) 是否还有其他已知的负面影响?我似乎找不到任何问题的参考。
visual-c++ - CException::`VC++ 应用程序中的 RTTI 完整对象定位器
你好
在我的 VC++ 应用程序中,我似乎偶尔会收到 CException::`RTTI Complete Object Locator 异常。
你们有谁知道为什么会发生这种特殊异常。
我在调用 GetLocaleInfo() WINDOWS API 时得到了这个。
任何帮助都会很棒。
谢谢
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 和其他平台的任何信息。
c++ - C++ RTTI 和派生类
我的 C++ 有点生疏了。这是我正在尝试做的事情:
第一个问题:
两者都返回 Cmd * 类型。我想要的结果是 CmdA* 和 CmdB*。除了:
其次,我想做这样的事情:
并获得输出“Cmd A”和“Cmd B”。现在它打印出“通用命令...”两次。
谢谢
c++ - 哪种设计模式/RTTI
我正在寻找将对象分派到正确的“目标”对象的最佳方法。
我有一个基本命令类:Cmd,两个子类:BufferCmd 和 StateCmd。命令“GotoLine”派生自 BufferCmd,“ChangeCmd”派生自 StateCmd。BufferCmds 旨在转到 Buffer 类,而 StateCmds 旨在转到 State 对象。
我目前设置了访客模式,以便可以执行以下操作:
我想使用访问者模式,因为我希望能够做一些大致如下的事情:
不幸的是,为了使用它,我需要知道将命令发送到哪个对象。我希望能够做这样的事情:
是否有最适合这种情况的模式?我什至应该使用访客模式吗?显然我想避免这种情况:
谢谢