typeid
what is the type id of the data type in c++ ?
sample code:
#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
struct stc
{
int key;
};
class base
{
public:
base(){}
~base(){}
int key;
};
int main(int argc, char** argv)
{
cout<<"void : "<<typeid(void).name()<<endl;
cout<<"int : "<<typeid(int).name() <<endl;
cout<<"int32_t : "<<typeid(int32_t).name()<<endl;
cout<<"uint32_t : "<<typeid(uint32_t).name()<<endl;
cout<<"int64_t : "<<typeid(int64_t).name()<<endl;
cout<<"uint64_t : "<<typeid(uint64_t).name()<<endl;
cout<<"double : "<<typeid(double).name() <<endl;
cout<<"float : "<<typeid(float).name() <<endl;
cout<<"std::string : "<<typeid(std::string).name()<<endl;
cout<<"std::vector : "<<typeid(std::vector<int>).name()<<endl;
cout<<"std::map : "<<typeid(std::map<int, int>).name()<<endl;
cout<<"struct stc : "<<typeid(stc).name()<<endl;
cout<<"class base : "<<typeid(base).name()<<endl;
return 0;
}
the result :
void : v
int : i
int32_t : i
uint32_t : j
int64_t : l
uint64_t : m
double : d
float : f
std::string : Ss
std::vector : St6vectorIiSaIiEE
std::map : St3mapIiiSt4lessIiESaISt4pairIKiiEEE
struct stc : 3stc
class base : 4base
dynamic_cast
ref
http://blog.youkuaiyun.com/dbzhang800/article/details/6672591