rtti

    1熱度

    1回答

    Howdey, 我使用TVirtualInterface實現一些接口的基本接口。這些interfaes代表可以在數據庫中找到的Keys。我使用定製的代碼生成器生成接口定義。例如: // Base code IKey = interface function KeyFields : string; function KeyValues : Variant; func

    1熱度

    1回答

    我有這樣一個項目: |--CMakeLists.txt(1) |--File1.cpp -W -W-all |--Folder1 |--CMakeLists.txt(2) |--File2.cpp -W -W-all -fno-rtti 正如你可以在上面看到,File2.cpp需要與-fno-rtti編譯,而其他文件應與rtti編譯。這是因爲我在我的項目中使用了clan

    0熱度

    1回答

    我有一個類 type myClass = class private FId: Integer; public function GetId: Integer; property Id: Integer read FId; end; 現在,我要交換Id屬性getter在運行時使用的GetId方法而不是FId領域。我可以使用R

    2熱度

    1回答

    我正在Delphi-Tokyo的Delphi-Tokyo學習RTTI來創建一個ORM,但我在訪問同時也是對象的屬性時遇到了問題。在下面的代碼中,我如何執行Prop的演員代碼爲id?在TRttiProperty實例 unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.

    25熱度

    3回答

    #include <memory> struct foo { }; int main() { std::make_shared<foo>(); } 雙方g++7和clang++5與-fno-exceptions -Ofast對於上面的代碼所產生的asssembly: 包含對operator new單個呼叫如果是-fno-rtti不傳遞。 包含兩個單獨的呼叫到operator new如果-f

    -1熱度

    1回答

    所以,我有一個類使用WM_COPYDATA來允許應用程序進行通信。 type TMyRec = record Name: string[255]; Age: integer; Birthday: TDateTime; end; function TAppCommunication.SendRecord(const ARecordToSend:

    1熱度

    1回答

    我有一個嵌入式TFrame和一些具有關聯屬性的組件(包括父窗體和框架)。餘可使用訪問父形式部件屬性: for field in ctx.GetType(frm.ClassInfo).GetFields do for attr in field.GetAttributes do... 我試圖通過在主循環使用以下嵌套訪問該幀中的屬性: for subField in ctx.GetTyp

    1熱度

    1回答

    我使用下面的代碼來設置屬性使用RTTI與德爾福10.2東京在運行時創建的組件,一切正常,因爲該示例的屬性是TypeLine,因爲我可以直接訪問它。 Componente_cc是可以與任何類實例化一個變量,無論是TLabel,TButton,TEdit ......或任何其他。在這種情況下在下面,我將其實例化作爲一個TLine. Var Componente_cc: TControl;

    16熱度

    2回答

    我正在嘗試創建std::unordered_map,其中值是std::type_index。下面的代碼片段工作: std::unordered_map<std::type_index, int> workingMap; workingMap[typeid(int)] = 1; workingMap[typeid(char)] = 2; 但是這一次不運行,並拋出一個錯誤: std::unor

    2熱度

    1回答

    我可以使用說typeid或dynamic_cast在派生的基類實例之間切換。例如: struct B { virtual ~B() {} }; struct D1 : B {}; struct D2 : B {}; void doit(B &b) { if (dynamic_cast<D1 *>(&b)) foo1(); else if (dynamic_cast<