#include <iostream>

// typeid testing

//////////////////////////////////////////////////////////

int main()
{
{
int v(0);
std::cout << typeid(v).name() << std::endl;
std::cout << typeid(v).raw_name() << std::endl;
} {
long v(0);
std::cout << typeid(v).name() << std::endl;
std::cout << typeid(v).raw_name() << std::endl;
} {
float v(0);
std::cout << typeid(v).name() << std::endl;
std::cout << typeid(v).raw_name() << std::endl;
} {
double v(0);
std::cout << typeid(v).name() << std::endl;
std::cout << typeid(v).raw_name() << std::endl;
} {
char v(0);
std::cout << typeid(v).name() << std::endl;
std::cout << typeid(v).raw_name() << std::endl;
} {
uint8_t v(0);
std::cout << typeid(v).name() << std::endl;
std::cout << typeid(v).raw_name() << std::endl;
} {
uint16_t v(0);
std::cout << typeid(v).name() << std::endl;
std::cout << typeid(v).raw_name() << std::endl;
} {
uint32_t v(0);
std::cout << typeid(v).name() << std::endl;
std::cout << typeid(v).raw_name() << std::endl;
} {
uint64_t v(0);
std::cout << typeid(v).name() << std::endl;
std::cout << typeid(v).raw_name() << std::endl;
} return 0;
}

  

使用示例

#include <iostream>

// typeid testing

//////////////////////////////////////////////////////////

int main()
{
int a(0); // 错误调用!!!!!!
// 比较两个字符串不能直接使用 ==
// 这是两个 cosnt char * 类型的变量,==执行的是地址的比较。所以会返回false!!!!
if (typeid(a).name() == "int")
{
// do something
std::cout << "It is integer. by name" << std::endl;
} // 使用string来比较ok
if (std::string(typeid(a).name()) == "int")
{
// do something
std::cout << "It is integer. if (std::string(typeid(a).name()) == \"int\")" << std::endl;
} // 这样也可以,返回的是同一个对象,字符串的地址自然也一样。
auto p1 = typeid(a).name();
auto p2 = typeid(1).name();
if (typeid(a) == typeid(1)) // 比较对象
{
// do something
std::cout << "It is integer. if (typeid(a) == typeid(1))" << std::endl;
} if (typeid(a) == typeid(1.0f)) // 比较对象
{
// do something
std::cout << "It is integer. if (typeid(a) == typeid(1.0f))" << std::endl;
} if (typeid(a) == typeid(int(1.0))) // 比较对象
{
// do something
std::cout << "It is integer. if (typeid(a) == typeid(int(1.0)))" << std::endl;
} return 0;
}

  

最新文章

  1. Java的静态导入
  2. CuteFTP 9.0 上传文件时,中文文件名乱码
  3. [译]36 Days of Web Testing(一)
  4. input 标签左对齐
  5. MySQL基本查询语句练习
  6. 安装jar包到本地maven仓库
  7. UVa1630,Folding
  8. elasticsearch 源码本地环境搭建
  9. 利用PowerDesigner15在win7系统下对MySQL 进行反向工程(三)
  10. 【BZOJ1207】【HNOI2004】打鼹鼠(动态规划)
  11. 微信小程序域名
  12. mysql的sql执行计划
  13. LeetCode(92):反转链表 II
  14. php如何以post形式发送xm并返回xmll数据
  15. 面试被问http协议?这篇文章足够覆盖所有相关问题!
  16. SqlServer 批量备份
  17. git将本地仓库强制替换掉远程仓库
  18. YUI Compressor 压缩 JavaScript 原理-《转载》
  19. hadoop学习day2开发笔记
  20. [jOOQ中文]2. jOOQ与Spring和Druid整合

热门文章

  1. 一起学Spring之三种注入方式及集合类型注入
  2. RabbitMQ 在.Net 中的使用
  3. Flask 路由,配置,蓝图
  4. Java生鲜电商平台-优惠券功能设计与开发(小程序/APP)
  5. C#中PadLeft,PadRight的用法
  6. css里的背景属性有哪些,如何去使用哪些属性
  7. Java学习笔记--线程day01
  8. Linux(Centos7)下Mysql的安装
  9. 关于SQL2005备份和还原的语法操作
  10. Angular框架入门