关于 std::type_info 中的反射扩展的总体感觉是什么?
我注意到反射是其他语言的开发人员发现 C++ 中非常缺乏的一项功能。对于某些应用程序,我真的明白为什么!如果您有反思,那么编写诸如 IDE 自动完成之…
在 C++ 中模拟动态调度基于模板参数
为了解决这个问题,这被大大简化了。假设我有一个层次结构: struct Base { virtual int precision() const = 0; }; template struct Derived : publi…
如何使用 TValue.AsType适当地?
我正在尝试使用 RTTI 将事件处理程序添加到控件,该控件可能已经设置了事件处理程序。代码看起来像这样: var prop: TRttiProperty; val: TValue; beg…
使用 RTTI 在运行时查找 Delphi 中的所有类助手?
Delphi 2010 中的扩展 RTTI 是否提供了一种在运行时列出定义的 类和记录助手 的方法时间? 据我所知德尔福 不显示提示或警告 当为一个类定义了多个类…
如何使用 rtti 将 NULL 设置为 Variant 字段
我在使用 rtti 将变体字段设置为 null 时遇到问题。 假设我有这样的类: TClass1 = class Field1:Integer; Field2:Variant; end; 当我访问 Field1 时…
Delphi 2010 RTTI:探索枚举
考虑这样一个枚举: type TTypeOfData = ( [XmlName('ABC')] todABC, [XmlName('DEF')] todDEF, [XmlName('GHI')] todGHI ); 其中 XmlName 是一个自定…
Delphi 2010 RTTI:使用TValue存储数据
我希望能够使用 TValue 将数据存储在 TList<> 中。就像: type TXmlBuilder = class type TXmlAttribute = class Name: String; Value: TValue; // TV…
如何在 Delphi 2010 中使用 RTTI 设置任意类型的事件处理程序?
阅读文章后 如何通过新的 RTTI 设置事件处理程序?,我想知道是否可以更动态地解决这个问题。例如,我想将任何组件的所有事件处理程序设置为 nil。 使…
指向 typeinfo::name() 的内存的生命周期是多少?
在 C++ 中,我可以使用 typeid 运算符来检索任何多态类的名称: const char* name = typeid( CMyClass ).name(); 返回的 const char* 指针指向的字符…
如何为整个项目设置 $RTTI 指令?
我正在将一个旧项目从 Delphi 2007 迁移到 Delphi 2010。我发现生成的可执行文件的大小增加了一倍多,而原始项目已经相当大了。 (超过 50 MB。)我怀…
我可以解密 GCC 的 RTTI 名称吗?
使用 gcc,当我使用 typeid 请求对象/变量的类型时,我从 type_info::name 方法得到的结果与我期望在 Windows 上得到的结果不同。我用 Google 搜索了…