typeinfo

    1熱度

    1回答

    當在C++中檢查字符串的typeinfo時,它返回一個奇怪的輸出A19_c,A19_c是什麼意思? 當作爲引用類型字符串顯式初始化時,它可以查找並返回一個Ss。 #include <iostream> #include <typeinfo> using namespace std; int main() { /* Enter your code here. Read input

    1熱度

    1回答

    所以我必須爲一個項目製作基於文本的視頻遊戲。我做了一個名爲「瓦」的類,然後是一個名爲「牆」的子類。然後我製作瞭如下所示的一系列拼貼。中心瓷磚,B2是一面牆。當我比較typeid(B2)==typeid(wall)時,即使圖塊B2是類型牆,它也會返回false。這個班,「戰士」有x和y分量。 //Initiate map const int rows = 3; const int

    2熱度

    2回答

    在C++ 11及更高版本中,可以使用current_exception()檢索到當前異常的exception_ptr。是否有可能在運行時確定所指向的異常的類型? 更確切地說,如何獲得exception_ptr所指異常的type_info的引用?我知道根據類型catch是可能的,但程序員需要爲所有可能的異常類型編寫catch塊,但這不是解決此問題的方案。 try { userProvide

    3熱度

    1回答

    的定義我需要編寫一個以RTTI模式對數據執行操作的函數,其中我不知道該類型的先驗。 我試着寫這樣的功能:作爲使用表達式TypeInfo(T)時,他希望作爲一個類型參數TypeIdentifier function doSomething (T: TypeIdentifier): Boolean; 但是,當我嘗試編譯我得到一個錯誤,因爲該類型TypeIdentifier不認可。 有人可以解釋我如何才

    2熱度

    1回答

    如何從GUID獲取類型信息? procedure MyProcedure(const InterfaceId: TGuid); var MyTypeInfo: PTypeInfo; begin MyTypeInfo := TypeInfo(InterfaceId); //E2133 TYPEINFO standard function expects a type iden

    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回答

    當我運行以下程序時,我得到了一個損壞的typeinfo名稱。 #include <iostream> #include <stdexcept> #include <typeinfo> namespace std { class really_out_of_range : public out_of_range { public: explicit really

    1熱度

    1回答

    是否有任何可能的方法來確定引用變量是否引用類成員(然後確定它屬於哪個類)而不是普通變量?這裏有一個簡單的例子,希望顯示了我在得到: class A { private: unsigned int x; public: A() : x(15) { } unsigned int& GetX() { return x; } }; int

    0熱度

    1回答

    include <typeinfo> vector<Console*> consoles; Console* sony = new Sony(); cout << typeid(sony).name() << endl; // typeid name == 4Sony consoles.push_back(sony); cout << typeid(*consoles.back())

    0熱度

    1回答

    假設我有一個遊戲引擎。 比方說,它包含類圖形,遊戲,並物理系統。 (真正的情況下是20個+系統。) 其中所有3從系統的。 這是簡單初始化的草稿。 main(){ Game_Engine* engine = new Game_Engine(); Graphic* sys1= new Graphic(engine); //set to System::engine_pointer