typeid

    0热度

    1回答

    我使用typeid(ClassName).name()来获取广泛的类类型的名称。但是,我需要将其长度固定(例如8个字符)。在很多情况下,这个类是在一个命名空间中,这个字符串很长,如果我只是得到前10个字符,它就不起作用。 有谁知道一个好的方法来编码/解码一个字符串成一个固定大小的字符串?因为我要将字符串发送给另一台无法访问地图的机器,所以我无法真正保留一张表来将hash_code映射到一个名称。

    0热度

    1回答

    我想弄清楚如何在Microsoft C++ 2015中使用typeid。https://msdn.microsoft.com/en-us/library/fyf39xec.aspx的示例按原样运行,但是当我添加一个显然无害的额外行时,编译器会给出一个错误。 // compile with: /GR /EHsc #include <iostream> #include <typeinfo.h>

    -3热度

    1回答

    我正在进行物理项目模拟,我需要计算2个分子的潜力。 ,这是我认为写代码的一部分: class Molecule { public: double someBulshit; virutal double Potential(const Molecule & mol); } class LC : public Molecule { public:

    3热度

    1回答

    我想知道为什么下面的代码是有效的使用std ::对构造函数: 代码: std::multimap< std::type_index, void * > mm; mm.insert(std::pair<std::type_index, void *>(typeid(int), 0)); 而且给使用std编译时错误:: make_pair: 错误: C2248 'type_info::type_

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

    所以我试图学习C++本身,我似乎无法弄清楚我的程序中的这个特定的错误。这是迄今为止我所拥有的。反正,这一切似乎都很好;我有用户通过我设置的提示输入他们的变量,但对我来说,确定他们正在使用什么样的整数是个棘手的问题。正如你所看到的,我把几个条件相比较,比较每个字节的大小和最大/最小值int类型(有符号,无符号,长,短),但每当我运行该程序,即使我不使用整数或一些bizzare数thtat应该很容易显

    2热度

    2回答

    目标是编写一个通用模板函数,可以计算两点之间的距离(以p1和p2作为两个参数)。点可以通过多种方式来表示: hopp::vector2<double> p0(0.0, 0.0); sf::Vector2<double> p1(0.0, 1.0); std::array<double, 2> p2 = { 1.0, 1.0 }; std::vector<double> p3 = { 1.0,

    10热度

    2回答

    typeid表示C++ RTTI运算符也是C++关键字。它返回一个保存(动态)类型特定信息的对象std::type_info。 根据我对各种来源的理解,当使用typeid时必须包括<typeinfo>,否则该程序是不合格的。实际上,如果我不包含前面提到的头文件,我的gcc5.2编译器甚至不编译程序。我不明白为什么要使用C++ 关键字要求包含头文件。我知道每当我们使用该头部中声明/定义的某个对象时,

    5热度

    2回答

    期间改变的我刚discoverd以下行为:具有A类型派生B类型的对象,的A施工时的最终类型是A和不B。这可以用下面的例子可以观察到: #include <iostream> #include <typeinfo> class A { public: A() { std::cout << &typeid(*this) << std::endl; } }; clas

    2热度

    1回答

    当我运行以下程序时,我得到了一个损坏的typeinfo名称。 #include <iostream> #include <stdexcept> #include <typeinfo> namespace std { class really_out_of_range : public out_of_range { public: explicit really