typeid

    2热度

    1回答

    看起来好像打电话给boost::any_cast<T>(any&)调用一些昂贵的类型检查来确保演员表是有效的。具体来说,它会执行以下测试以确保演员表合法: std :: strcmp(operand-> type()。name(),typeid(ValueType).name())== 0 如果转换是合法的,代码将执行一个static_cast。 这对于调试模式似乎很有用,但对于生产代码来说相当慢

    0热度

    2回答

    可能重复: Printing derived class name in base class 我使用GCC,以及下面的代码输出令人意想不到的 #include <iostream> #include <typeinfo> using namespace std; class B { public: B (B * ptr) { cout<< typeid(*ptr).n

    1热度

    1回答

    我有一个C++库,它带有一个特定函数返回一个boost::any,它的值类型是在不同的包含库中定义的特定enum。这通常工作正常。 但是,当我从Matlab mex文件动态链接到我的库时,typeid(the_enum_t)似乎与我的库和调用者中生成的东西不同,因为它不会比较==。由于我实际上使用flann,其版本boost::any执行基于type_info::==的检查,因此这会使所有内容都断

    0热度

    3回答

    所以即时通过我的ResourceManager类与使用C++的游戏进行一点问题。 所以我试图使我的常规addImage功能的模板功能,所以它会增加声音,但我有一些我不能真正处理的错误可以帮助我吗? :d .HPP #ifndef RESOURCE_MANAGER_HPP #define RESOURCE_MANAGER_HPP #include "Image.cpp" #include "

    1热度

    1回答

    根据标准,typeid运算符是依赖于实现的,所以在由不同编译器编译的其他进程创建的对象上使用它是无稽之谈。但是提供过程由同一个编译器编译的情况是什么?

    13热度

    2回答

    if(typeid(int) == typeid(const int)) cout << "Same types"<< endl; 程序输出的typeid为什么回报: 同种 是我失去了一些东西? 这些不是相同的类型大声笑。

    8热度

    4回答

    后内存泄漏我有一个程序,其中部分用于信息日志记录,我输出某些类的名称,因为它们被使用(具体来说,我添加一个条目的日志说,沿线Messages::CSomeClass transmitted to 127.0.0.1)。我这样做类似下面的代码: std::string getMessageName(void) const { return std::string(typeid(*this)

    0热度

    1回答

    如何根据产品类型为不同的产品设置不同的布局? 我想要显示虚拟和捆绑产品在不同的布局,简单和分组将显示不同的布局。 谢谢

    21热度

    3回答

    type_info::name()的输出格式是特定于实现的。 namespace N { struct A; } const N::A *a; typeid(a).name(); // returns e.g. "const struct N::A" but compiler-specific 是否有人编写了一个封装器,它返回在编译器中相同的可靠,可预测的类型信息。多个模板化功能将允许

    1热度

    3回答

    如果我想创建一个模板类,并根据模板参数的typeid执行不同的操作,那么我该如何编码? 例如,我有以下模板类,其中我想根据它是一个int还是一个字符串来初始化成员字段数据。 #include <string> template <class T> class A { private: T data; public: A(); }; // Implementat