rtti

    0熱度

    1回答

    你好我有一個問題是可能的我在Delphi中創建子類的循環?我看到一些關於RTTI,但我不能找到如何在運行時創建屬性的類 爲例 謝謝 Type TclassX = class private public X1 : integer; X2 : String; end; Type TRecord = class ID : T

    6熱度

    1回答

    我有存儲在xml和lua代碼中的值,並通過RTTI訪問對象的屬性。 var o, v: TValue; // o is current object a: TStringDynArray; // params as array ctx: TRttiContext; tt: TRttiType; p: TRttiProperty; pt:

    2熱度

    1回答

    在Delphi中,假設我有一個像這樣的(很簡單)簽名的方法: procedure abc(const prop1:string; const arg1:TValue; const prop2:string; out arg2:TValue); 我使用的是建立一個從TList <PPropValPair>的記錄是這樣提供的參數: type TPVPType = (ptIn,

    4熱度

    2回答

    對於特定的類層次結構,我需要知道基類引用是否是特定派生類的實例。 由於不同的原因,我不能在這裏使用標準的C++ RTTI,我需要實現一個自定義的instanceof機制。 LLVM-stle RTTI將滿足我的需求,但我想知道它是否會存在一種方式(以某種方式使用模板)來自動執行classof方法? 是否有其他/更簡單的實現這種機制,可以知道基類是否是派生類的實例? 我的約束: 我沒有多重繼承,但我

    3熱度

    3回答

    我有一棵樹,其中每個節點基本上是這樣的: struct node { std::unordered_set<object*> objects; std::map<std::type_index,node> children; }; 當我遍歷樹添加一個新的類型,我想要做的檢查: std::is_base_of<base,derived> 但是,我對衍生類型唯一的信息是

    2熱度

    2回答

    我遇到了麻煩,試圖使用Delphi的RTTI訪問我的記錄數據中的記錄類型指針。 請檢查我一直在努力的示例代碼。 // Dummy Header typDummyHeader = ^tysDummyHeader; tysDummyHeader = record MessageCode : Integer; MessageLength : Integer;

    15熱度

    1回答

    我有此測試程序https://gist.github.com/real-mielofon/5002732 RttiValue := RttiMethod.Invoke(RttiInstance, [10]); 和簡單的單元與接口: unit Unit163; interface type {$M+} ISafeIntf = interface function T

    0熱度

    1回答

    我有一個「父」類,它有一個通用函數來將JSON字符串加載到名爲loadVals的實例屬性中。我有兩個孩子有自己的屬性,其中一個道具是一個記錄。 該函數成功設置主實例的所有道具,但未能設置記錄的道具上的值,沒有錯誤,我可以看到它通過記錄的道具成功循環但沒有設置值。 寫了一個小測試控制檯應用程序,在那裏你可以看到的行爲。 uses System.SysUtils, System.TypInf

    3熱度

    1回答

    我讀了Itanium ABI它說, 它的目的有兩個TYPE_INFO指針指向同等類型的描述,當且僅當指針相等。一個實現必須滿足這個約束,例如通過使用符號搶佔,COMDAT部分或其他機制。 有沒有人知道關於如何在流行的平臺上實現這一點的血淋淋的細節,例如使用GCC和GNU binutils的Linux,使用動態加載的庫時?它有多可靠? 此外,我對這個typeid的印象還不清楚,因爲MSVC中的比較完

    4熱度

    7回答

    截至鏈接:http://msdn.microsoft.com/en-us/library/bb383973.aspx ...一個隱式類型的局部變量是強類型的,就好像你已經自己聲明的類型,但是編譯器決定爲 ... 但是,我有這樣一段代碼: protected void Page_Load(object sender, EventArgs e) { if (Session["us