rtti相关内容

如何知道TCL中变量的数据类型?

我需要知道TCL中一些变量的数据类型。例如,有三个变量: set a 10 set b { I love Tcl } set c "Hello" 假设我对他们的类型一无所知。但我需要知道这一点,才能进一步推进我的工作。那么,我如何才能确定-在上面的示例中- a为整数 b是一个列表 c是字符串 推荐答案 Tcl的变量根本没有数据类型。所有这些值都可以包含任何值。 ..
发布时间:2022-06-28 17:56:16 其他开发

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

Andrei Alexandrescu 在 现代C++设计: typeid 返回的对象有静态存储,所以你不必担心终身问题. 安德烈继续: 标准不保证每次调用,比如说,typeid(int)返回相同的引用type_info 对象. 虽然标准不保证这一点,但在 GCC 和 Visual Studio 等常见编译器中是如何实现的? 假设 typeid 没有泄漏(并且每次调用 ..
发布时间:2022-01-17 08:26:41 C/C++开发

什么是动态转换的“好用"示例?

我们经常听到/读到应该避免动态转换.我想知道根据你的说法,什么是它的“好用"示例? 编辑: 是的,我知道其他线程:它是确实在阅读我提出问题的第一个答案时! 解决方案 这个最近的主题给出了一个它可以派上用场的例子.有一个基本的 Shape 类和从它派生的类 Circle 和 Rectangle .在测试相等性时,很明显圆形不能等于矩形,尝试比较它们将是一场灾难.在遍历指向 Sha ..
发布时间:2021-12-31 22:03:20 C/C++开发

Delphi 新 RTTI 的实际使用 - Attributes,Values

我发现了一个 关于 Delphi 中新 RTTI 的很好解释,但我不明白我读过的所有内容中的一件重要事情 - 我在哪里可以使用它? 它应该取代什么? 解决方案 扩展的 RTTI 的工作方式类似于 .NET 中的反射.它使您可以访问内部应用程序结构信息.您可以在运行时访问类属性、方法等,在一定程度上您以前无法做到. 一些使用方法: 将类序列化/反序列化为 XML 或其他媒体 ..
发布时间:2021-12-13 23:59:25 其他开发

为什么我要关心 Delphi 中的 RTTI?

我听说了很多关于新的/改进的 Delphi 2010 的 RTTI 功能,但我必须承认我的无知……我不明白.我知道 Delphi 的每个版本都支持 RTTI……而且我知道 RTTI(运行时类型信息)允许我在应用程序运行时访问类型信息. 但这究竟意味着什么?Delphi 2010 的 RTTI 是否支持与 反射在 .NET 中相同的东西? 有人可以解释一下为什么 RTTI 有用吗?假装我 ..
发布时间:2021-12-13 23:54:48 其他开发

delphi xe 禁用 RTTI

我最近使用了 delphi xe,但由于 rtti(我认为),exe 的大小非常大 如何删除 rtti ,我可以在不压缩的情况下使我的应用程序大小与 delphi 2009 应用程序 (490 kb) 一样小吗?以及rtti有什么用 解决方案 简而言之(完整故事由初始答案中的链接提供): {$RTTI 显式方法([]) 属性([]) 字段([])} 请注意,从 XE6 开 ..
发布时间:2021-12-13 23:25:34 其他开发

访问 TWinControl 的受保护事件

想象一下,你想分配你自己的事件过程: procedure TSuperObject.DoSomething(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);开始ShowMessage('是的,我在做');结尾; 到窗体上的任何 TWinControl.通常,如果表单上有 Panel1 (TPan ..
发布时间:2021-12-13 23:08:40 其他开发

提取 C++ 模板参数

虽然我很怀疑,但我很好奇是否可以从现有类型中提取原始类型模板参数,也许使用 RTTI. 例如: typedef std::bitset词集; 是否可以在不将其硬编码到其他地方的情况下提取上述代码中的数字 16?欢迎使用特定于编译器的实现,但我对 g++ 特别感兴趣. 解决方案 通常不可能选择任意模板参数. 但是,通常的做法是这样的: template结构 foo {静态常 ..
发布时间:2021-12-13 19:13:51 C/C++开发

RTTI有多贵?

我知道使用 RTTI 会影响资源,但影响有多大?我看过的所有地方都只是说“RTTI 很贵",但实际上没有一个提供任何基准或定量数据来保护内存、处理器时间或速度. 那么,RTTI 有多贵?我可能会在只有 4MB 内存的嵌入式系统上使用它,所以每一位都很重要. 编辑:根据 S. Lott 的回答,这样会更好如果我包括我实际在做的事情.我正在使用一个类来传递不同长度的数据并且可以执行不同的操 ..
发布时间:2021-12-08 11:52:17 C/C++开发

RTTI 动态数组 TValue Delphi 2010

我有一个问题.我是来自 Delphi 2010 的运行时类型信息的新手.我需要将长度设置为动态数组到 TValue 中.你可以看到代码. Type TMyArray = 整数数组;TMyClass = 班级发表函数 Do:TMyArray;结尾;函数 TMyClass.Do:TMyArray;开始设置长度(结果,5);对于 i:=0 到 4 Result[i]=3;结尾;............ ..
发布时间:2021-11-18 05:09:42 其他开发

从编译器设置中关闭 RTTI 有什么好处?

由此(RTTI 有多贵?),似乎很明显动态转换是比静态类型比较昂贵得多,但我想知道在编译器选项(VS2010,/GR-)中关闭 RTTI 选项是否值得 我的代码中没有动态转换(我用静态转换替换了它们).但是 (/GR-) 选项在使用动态转换时除了发出错误之外还有其他作用吗?里面有没有内存或代码优化? 提前致谢. 解决方案 Straight 来自MSDN(强调我的): 当/ ..
发布时间:2021-09-18 19:12:46 C/C++开发

Java中RTTI和反射的区别

我的问题是如何在运行时加载类信息? 当有人调用 instanceof 时,这被认为是 RTTI 还是反射?还是看实际情况? 解决方案 术语“RTTI" 是一个特定于 C++ 的术语,指的是核心语言的功能,它允许程序在运行时确定各种对象的动态类型.它通常指的是 dynamic_cast 或 typeid 运算符,以及由 typeid 生成的关联 std::type_info 对象. ..
发布时间:2021-07-06 18:37:37 Java开发

进行 C# 运行时类型识别的简化方法可以避免 NULL 检查?

我发现自己使用了一种常见的运行时类型识别模式,尤其是在编写处理不同类型控件的代码时.这是模式: if (ctrl is ControlTypeEtc)(ctrl as ControlTypeEtc).SomeMethod(); 我这样做是为了避免在 as 运算符返回 NULL 的情况下必须进行 NULL 检查.有没有办法将其简化为单个操作? 解决方案 没有办法在一次操作中做到这一点. ..
发布时间:2021-06-10 18:39:46 C#/.NET