问题标签 [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 - 将 DevExpress TcxFilterOperatorKind 与字符串转换?
这是我用来从 DevExpress 网格中的过滤器中获取 filtertype 运算符的代码片段: OperatorKindToStr 用于从过滤器中提取 operatorkind 作为字符串并将其存储在 xml 文件中。StrToOperatorKind 用于从 xml 转换回字符串以在过滤器中设置运算符类型。
显然我希望 StrToOperatorKind 和 OperatorKindToStr 更聪明一点。我在 VCL TypeInfo 中尝试过 GetEnumProp 方法,但它不起作用。那么如何将 TcxFilterOperatorKind 属性从 aFilterItem 变量提取到字符串并返回到 TcxFilterOperatorKind ?
c++ - Qt RTTI 麻烦
在不通过子类化处理事件(如鼠标移动和点击)的过程中,必须使用installEventFilter
并提供事件处理程序。这样做时,我遇到了 RTTI 支持的问题,这意味着无论触发哪个对象事件,它typeid().name()
都会一直提供。QObject *
当然,还有另一种解决方案——dynamic_cast
然后是空指针检查,但我个人认为它并不干净(并且希望避免多次此类检查)。更具体地说,这是一个我没有使用启用 RTTI (/GR) 的 Visual C++ 的示例:
c++ - C++ 中的运行时类型信息
什么是 C++ 中的运行时类型控制?
delphi - 为什么我会收到枚举类型的“类型没有类型信息”错误
我已经声明了以下枚举类型,我希望第一个成员的序数值为 1(一)而不是通常的 0(零):
如果我调用TypeInfo(),例如作为调用GetEnumName()的一部分,我会收到编译器错误:
错误:“E2134:类型 'TMyEnum' 没有类型信息”
为什么是这样?
我知道只有在启用$M编译器选项或(从某些类派生,例如TPersistent )的情况下编译类时才具有 typeinfo ,但我认为没有任何特殊条件可以为枚举类型提供 typeinfo 。
delphi - TPersistent + 接口,Delphi
我需要一个基于 TPersistent 的类(因此它存储 RTTI)并包括默认接口处理(QueryInterface、_AddRef、_Release)……我要查找的类名是什么?
delphi - 如何通过新的 RTTI 设置事件处理程序?[D2010]
使用新的 RTTI 模块时,我找不到使用新实用程序设置事件处理程序的方法。尝试这样的事情:
SetValue 需要传递一个 TValue,但我还没有找到一种通过 TValue 表示 TMethod 的方法。任何意见?
附言。还有一个附带问题..似乎用“L”作为RTTI变量的前缀是一种约定(而且是一个很好的IMO,元代码很快就变成了一个难题)。但它实际上代表什么?
c++ - 在 C++ 中混合 RTTI 标志
如果我在 C++ 中有多个链接的 C++ 静态链接库,如果它们已使用启用/禁用运行时类型信息 (RTTI) 的不同值进行编译,它们是否可以共享(传递到函数和从函数传递)类对象?
--edit:感谢您的回复,我担心的具体事情是 1. 启用 RTTI 是否会改变 sizeof 对于静态(非多态类型)的行为?
并且,2. 如果我在启用 RTTI 的库中创建一个类并将其传递给另一个非启用 RTTI 的库,虚拟方法是否正常工作。(反之亦然)
最后 3. 如果我在启用 RTTI 的库中创建一个类,我希望能够使用 dynamic_cast,如果我将该对象传递给非启用 RTTI 的库,我仍然可以在该对象上使用它。...我认为不会,无论如何这似乎是个坏主意...我只是好奇。
c++ - 如何在 C++ 中输入类型
如何在 C++ 中模拟 C# typeof-command 行为?
C# 示例:
称呼:
如何使用 C++ 实现这一点?也许 QT 或 Boost 库提供了解决方案?
如果您想以从文件(.so 或 .dll)加载这些类型的对象的方式实现 .GetPlugins(...),情况会怎样?
delphi - 如何使用 RTTI 在 Delphi 中获取访问字段?
考虑以下:
在 TMainClass.GetValue 我尝试获取 TMainClass 字段的值:
可能有另一种获取字段值的方法,这些字段是另一个类的实例?
delphi - 发现具有多个继承级别的属性首次发布的类
使用 Typinfo 单元,很容易枚举属性,如下面的代码片段所示:
但是,我需要弄清楚每个属性继承的确切类。例如在 TControl 中,Tag 属性来自 TComponent,它赋予它的继承深度为 1(0 是在 TControl 本身中声明的属性,例如 Cursor)。
如果我知道哪个类首先定义了属性,那么计算继承深度很容易。就我的目的而言,属性首次获得公开可见性的地方就是它首次出现的地方。
我正在使用 Delphi 2007。如果需要更多详细信息,请告诉我。所有帮助将不胜感激。