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