rtti

    7熱度

    1回答

    在Delphi類中,我有一些屬性,我想通過訪問它們的名稱來設置它們。 現在我使用例如Settings.AllowSysop := True; 那我想這樣做Settings('AllowSysop').Value := True; 這樣做的原因是,設置什麼我的用戶可以訪問,這是從那裏從文件中讀取行的許可文件讀取時(它就像一個INI但加密的)可能看起來像 AllowSysop = True 我知道

    3熱度

    2回答

    我在做與RTTI一些工作在Delphi XE3,到目前爲止,這導致了一個過程的調用如下: procedure MyProc(ARecordInstance : pointer; ARecordType : PTypeInfo); ,我把這個程序如下: MyProc(@MyRec TypeInfo(TMyRec)); 這一切工作正常。 它發生,我認爲我也許能簡化我的程序進行: procedu

    5熱度

    1回答

    我使用Boost :: iostreams同時寫入我的控制檯和文件。當我使用eclipse進行調試時(使用gdb當然),我收到一條警告,說RTTI符號找不到我從Boost :: iostreams使用的其中一個類。 這裏是重現問題的最小代碼。 #ifndef BOOST_IO_STREAM_H_ #define BOOST_IO_STREAM_H_ #include <fstream> #

    8熱度

    2回答

    我想創建一個表單,其類名爲字符串which has been asked about before,但我不想調用GetClass,我想使用Delphi的新RTTI功能。使用此代碼,我有TRttiType,但我不知道如何實例化它。 var f:TFormBase; ctx:TRttiContext; lType:TRttiType; begin ctx :=

    0熱度

    1回答

    class A { protected: int a; public: A(); A(int); virtual void print()=0; virtual ~A(); }; class B: public A { int b; public: B(); B(int,int); //initiali

    2熱度

    3回答

    我發現自己使用通用的運行時類型識別模式,特別是在編寫處理不同類型控件的代碼時。下面是模式: if (ctrl is ControlTypeEtc) (ctrl as ControlTypeEtc).SomeMethod(); 我這樣做是爲了避免做的情況下,一個NULL檢查爲運算符返回NULL。有沒有辦法簡化這到一個單一的操作?

    1熱度

    2回答

    綜觀C++ RTTI和type_info類有時我找到一種方法的描述稱爲raw_name(),用於返回一個類的demangled名稱。我無法在g ++中找到任何實現,只能使用方法name()。你知道這是否只是針對Visual Studio/MS的實現,以及是否是C++標準的一部分?

    4熱度

    3回答

    考慮以下幾點: struct B { }; template<typename T> struct D : B { T t; } void g(int i) { ... } void g(string s) { ... } void g(char c) { ... } void f(B* b) { if (dynamic_cast<D<int>*>(b)

    0熱度

    1回答

    可能重複: Is there a way to instantiate objects from a string holding their class name? 我寫了一個VBO模板類在OpenGL頂點緩衝區對象的工作。我正在爲C++編寫多個平臺。 我想在運行時從配置文件中設置類型。 例如 <vbo type="bump_vt" ... /> Vbo* pVbo = new Vbo<bu

    2熱度

    1回答

    的getAttributes我有一個TForm的是這樣的: TMyForm = class (TForm) [MyAttr('Data')] edit1: TEdit; private FData: String; end 當我試圖讓通過RTTI這種形式的領域,我只得到了EDIT1場,不FDATA,當我查詢對於edit1字段屬性,獲得一個空數組。 對於不能繼承TFor