rtti

    10热度

    2回答

    typeid表示C++ RTTI运算符也是C++关键字。它返回一个保存(动态)类型特定信息的对象std::type_info。 根据我对各种来源的理解,当使用typeid时必须包括<typeinfo>,否则该程序是不合格的。实际上,如果我不包含前面提到的头文件,我的gcc5.2编译器甚至不编译程序。我不明白为什么要使用C++ 关键字要求包含头文件。我知道每当我们使用该头部中声明/定义的某个对象时,

    6热度

    1回答

    我正在使用外部库,并且需要创建一个观察者模式,其中观察者是从属于该库的对象派生的。我不想从库中更改基类,同时我必须使用这个不可更改基类的引用/指针列表。最重要的是,这个库构造了我需要筛选适合观察者的对象列表。 我写的代码大致相当于此: #include <iostream> #include <vector> #include <memory> // This class is from

    6热度

    1回答

    我想获取记录字段的类型以创建正确的比较器(作为任何/几乎任何记录类型的一般解决方案)。我无法找到静态数组类型信息: TArrFieldTest = record a: string; b: array[0..3] of byte; end; procedure Test; var rttiContext: TRttiContext; rtti

    1热度

    1回答

    声明成员published具有优于public: 能够读取/在对象写成员Insepoctor IDE的 RTTI and its uses 那么,有以往任何时候都宣告成员的利益public而不是published? published有什么缺点吗?或者我应该总是宣布成员published,作为一项规则? PS:不是重复的;在发布我的问题之前,我阅读了该问题及其所有答案。 “可能的重复”问题解释了两

    2热度

    1回答

    我们都知道ASSIGN COMPONENT name OF STRUCTURE TO <dest>命令。我想用这个命令来访问类的公共属性。但根据文档(不幸的是我的调试器),这不适用于类。 有没有可能做到这一点?使用类,它总是返回sy-subrc = 4。

    4热度

    2回答

    我希望能够检查,添加和删除ST:TElementSet中的T:TElements。 type TElements = (elA, elB, elC); TElementSet = set of TElements; TMyClass<T, ST> = class property SetValue:ST; end; 仿制药并不能使我来告诉编译

    5热度

    1回答

    我试图推广使用RTTI的文本属性的可视化组件的内容验证,但是当我尝试传递一个字符串值到TRttiMethod.Invoke,我得到消息“无效的类型转换”。 (实际上是“UngültigeTypumwandlung”,但我想,这是一个合适的翻译。) 下面的代码被剥夺了所有的安全措施,断言等,假设所有传递的对象都是完美的。 procedure ValidateTextFieldAndSetFocus(

    0热度

    1回答

    我想弄清楚如何在Microsoft C++ 2015中使用typeid。https://msdn.microsoft.com/en-us/library/fyf39xec.aspx的示例按原样运行,但是当我添加一个显然无害的额外行时,编译器会给出一个错误。 // compile with: /GR /EHsc #include <iostream> #include <typeinfo.h>

    2热度

    2回答

    扩展的RTTI具有GetDeclaredProperties函数,这正是我所需要的,但是如果我在多线程中使用扩展RTTI时遇到问题。 因此,我使用GetPropList,但这给了我所有属性的列表 - 不仅发布在当前类(或明确声明)。 即 TBaseSettings = class(TPersistent) published property Charset: string read

    0热度

    2回答

    所以我想要做的是实现消息模式。据我所知,用户将根据我输入的消息类型进行操作,而不是执行操作的消息类型。因此,这是我如何处理它: 我想要得到的对象的数据类型,所以我可以做一个switch语句,但我不会因此知道从哪里开始。 我已经通过谷歌搜索,并做了一些研究,但没有成功。这是我曾尝试: Decltype:甚至还没有接近我想要的 的typeof:我不是如何使用 动态铸如此清晰:不接近我想要 基本上,我想