我如何获得以下typeid
:T& object
; T
所在的位置:template<class T>
。我正在使用c ++代码。我做了测试:
const std::type_info& ObjT= typeid(object);
std::cout<<"******the objT is: "<<&ObjT<<std::endl;
但它崩溃了。为什么呢?
答案 0 :(得分:4)
如果您想要一个人类可读的名称,请使用name()
方法:
std::cout<<"******the objT is: "<<ObjT.name()<<std::endl;
答案 1 :(得分:3)
你是否包括:
#include <typeinfo>
也许你应该发送
std::cout << typeid(object).name() << std::endl;
也许你正在做&amp;&amp; amp;在对象上。
查看示例here
答案 2 :(得分:0)
这是你在做什么?
#include <typeinfo>
#include <iostream>
template <typename T>
struct S {
};
int main() {
S <int> a;
S <int> & object = a;
const std::type_info & ObjT = typeid( object );
std::cout << "******the objT is: "<< ObjT.name() << std::endl;
}
这适用于GCC 4.5.1。