#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;
}

  

C++ 数据类型判断 typeid的更多相关文章

  1. javascript数据类型判断

    javascript基本数据类型:原始类型  和  引用类型 原始类型(简单数据类型):String,Number,Boolean,Undefined,Null,Symbol(ES6新增) 引用类型( ...

  2. js数据类型判断和数组判断

    这么基础的东西实在不应该再记录了,不过嘛,温故知新~就先从数据类型开始吧 js六大数据类型:number.string.object.Boolean.null.undefined string: 由单 ...

  3. Javascript 中的数据类型判断

    (迁移自旧博客2017 09 25) typeof 我们常使用typeof来判断数据类型,在常规场景中足以应付数据类型判断的需要: var obj = { name: 'zhangxiang' }; ...

  4. Python输入数据类型判断正确与否的函数大全(非常全)

      对于python输入数据类型判断正确与否的函数大致有三类: (1)type(),它的作用直接可以判断出数据的类型 (2)isinstance(),它可以判断任何一个数据与相应的数据类型是否一致,比 ...

  5. 请你讲一讲JavaScript有哪些数据类型, 数据类型判断有哪些方法?

    js的8种数据类型 JavaScript中有8种数据类型, 包括基本数据类型(number, string, boolean, null, undefined, symbol, bigint)和引用数 ...

  6. JS数据类型判断的几种方法

    JS数据类型判断 JavaScript 中常见数据类型有Number.String.Boolean.Object.Array.Json.Function.Date.RegExp.Error.undef ...

  7. C/C++数据类型判断与转换

    最近总想着写一些通用的代码,然集中收纳到自己的私人库中去,这些代码期望能与公司基础数据结构无关.然而这比较难,因为无论如何,必需要用到一些结构 化的东西,这些与基础引擎等有关,必需极度抽象才可以做到层 ...

  8. 浅玩JavaScript的数据类型判断

    前言 平常在需要进行类型判断时,随手拿起typeof就像手枪一样只管突突突...也没有仔细的去了解它的具体特性. 所以这里就利用空闲时间,来做一个较为详细的了解. 首先我们来全面看一遍typeof类型 ...

  9. C# 字符串 数据类型 判断 与特定规则验证

    验证字符串格式 1)判断字符串是否是常见数据类型,decimal,foalt,double,datetime,int等等 2)验证字符串符合特定规则    (1)邮箱地址,IP地址     (2)纯数 ...

随机推荐

  1. 字节跳动——IT技术工程师面试题

    .自我介绍 .项目介绍 .争对个人项目进行提问 .场景模拟 .1如何知道用户的指定视频(类似于QQ发视频)的服务是正常的 .使用appum进行自动化测试 .使用bat脚本获取进程状态,然后定时发送em ...

  2. (转)两种高效过滤敏感词算法--DFA算法和AC自动机算法

    原文:https://blog.csdn.net/u013421629/article/details/83178970 一道bat面试题:快速替换10亿条标题中的5万个敏感词,有哪些解决思路? 有十 ...

  3. 从0系统学Android--3.6 RecyclerView

    从0系统学Android--更强大的滚动控件---RecyclerView 本系列文章目录:更多精品文章分类 本系列持续更新中.... 参考<第一行代码> 首先说明一点昨天发了一篇关于 L ...

  4. Oracle DB Time

    Oracle DB Time是Oracle数据库在时间维度上剖析性能的一个重要指标,通过逐级分解该指标,定位到浪费资源或者资源争用的首要事件上,从而通过减少等待以及最小化每个请求的使用资源来达到优化的 ...

  5. Mysql安装、配置、优化

    MYSQL定义 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最 ...

  6. MATLAB实例:绘制折线图

    MATLAB实例:绘制折线图 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 条形图的绘制见:MATLAB实例:绘制条形图 用MATLAB将几组不同的数 ...

  7. 六、接上一个博客-ITK例子运行结果

    一.程序介绍 该程序的主要思路如下: 二.程序参数 1-程序自己创建三维图像的时候 我自己计算得到的参数如下: 三维图像参数:  旋转参数: 光线投射法参数: 当我们输入参数:  -v 得到程序的输出 ...

  8. 2019年全国高校计算机能力挑战赛 C语言程序设计决赛

    2019年全国高校计算机能力挑战赛 C语言程序设计决赛 毕竟这个比赛是第一次举办,能理解.. 希望未来再举办时,能够再完善一下题面表述.数据范围. 话说区域赛获奖名额有点少吧.舍友花60块想混个创新创 ...

  9. Java中的BufferedImage类、Image类、Graphics类

    https://www.cnblogs.com/jpfss/p/11731812.html

  10. E-factory

    E-factory为生成XML和HTML提供了一种简单而紧凑的语法 # coding:utf-8 from lxml.builder import E def CLASS(*args): # clas ...