C++ 数据类型判断 typeid
#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的更多相关文章
- javascript数据类型判断
javascript基本数据类型:原始类型 和 引用类型 原始类型(简单数据类型):String,Number,Boolean,Undefined,Null,Symbol(ES6新增) 引用类型( ...
- js数据类型判断和数组判断
这么基础的东西实在不应该再记录了,不过嘛,温故知新~就先从数据类型开始吧 js六大数据类型:number.string.object.Boolean.null.undefined string: 由单 ...
- Javascript 中的数据类型判断
(迁移自旧博客2017 09 25) typeof 我们常使用typeof来判断数据类型,在常规场景中足以应付数据类型判断的需要: var obj = { name: 'zhangxiang' }; ...
- Python输入数据类型判断正确与否的函数大全(非常全)
对于python输入数据类型判断正确与否的函数大致有三类: (1)type(),它的作用直接可以判断出数据的类型 (2)isinstance(),它可以判断任何一个数据与相应的数据类型是否一致,比 ...
- 请你讲一讲JavaScript有哪些数据类型, 数据类型判断有哪些方法?
js的8种数据类型 JavaScript中有8种数据类型, 包括基本数据类型(number, string, boolean, null, undefined, symbol, bigint)和引用数 ...
- JS数据类型判断的几种方法
JS数据类型判断 JavaScript 中常见数据类型有Number.String.Boolean.Object.Array.Json.Function.Date.RegExp.Error.undef ...
- C/C++数据类型判断与转换
最近总想着写一些通用的代码,然集中收纳到自己的私人库中去,这些代码期望能与公司基础数据结构无关.然而这比较难,因为无论如何,必需要用到一些结构 化的东西,这些与基础引擎等有关,必需极度抽象才可以做到层 ...
- 浅玩JavaScript的数据类型判断
前言 平常在需要进行类型判断时,随手拿起typeof就像手枪一样只管突突突...也没有仔细的去了解它的具体特性. 所以这里就利用空闲时间,来做一个较为详细的了解. 首先我们来全面看一遍typeof类型 ...
- C# 字符串 数据类型 判断 与特定规则验证
验证字符串格式 1)判断字符串是否是常见数据类型,decimal,foalt,double,datetime,int等等 2)验证字符串符合特定规则 (1)邮箱地址,IP地址 (2)纯数 ...
随机推荐
- Prometheus监控(二)
Prometheus监控(二) 数据类型 Counter(计数器类型) Counter类型的指标的工作方式和计数器一样,只增不减(除非系统发生了重置),Counter一般用于累计值. Gauges(仪 ...
- docker chromium/chrome: error while loading shared libraries: libXcursor.so.2: cannot open shared object file: No such file or directory
在运行 pyppeteer 的时候,因为依赖浏览器,出现上述情况. 解决办法: 一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误.原因一般有两个, 一个是操作系统里确实没有包含 ...
- springboot2.x实现oauth2授权码登陆
参考文章:https://blog.csdn.net/qq_27828675/article/details/82466599 一 进行授权页 浏览器输入http://localhost:8081/o ...
- How to: Supply Initial Data for the Entity Framework Data Model 如何:为EF数据模型提供初始数据
After you have introduced a data model, you may need to have the application populate the database w ...
- SSM框架之SpringMVC(5)文件上传
SpringMVC(5)文件上传 1.实现文件上传的前期准备 1.1.文件上传的必要前提 A form 表单的 enctype 取值必须是: multipart/form-data(默认值是:appl ...
- 《Python3 网络爬虫开发实战》开发环境配置过程中踩过的坑
<Python3 网络爬虫开发实战>学习资料:https://www.cnblogs.com/waiwai14/p/11698175.html 如何从墙内下载Android Studio: ...
- 国内的go get问题的解决 --gopm
一.golang之旅--gopm 1.什么是gopm 在nodejs中我们有npm,可以通过npm来下载安装一些依赖包.在go中也开发了类似的东西,那就是gopm.这玩意儿是七牛开发的.在这里说下,七 ...
- PHP计算二维数组指定元素的和
array_sum(array_column($arr, 'num')); //计算二维数组指定元素的和 $arr = [ [ 'id'=>1, 'num'=>3, ], [ 'id'=& ...
- sql server数据库查询取出重复数据记录
问题:博主在2011年6月,广东技术师范大学大四的时候,从学校计算机科学学院网站看到招聘信息并到广东中原地产IT部面试,很清楚记得当时的面试题目:怎么从数据库里面查询重复记录. 解决方案:在sql s ...
- Mybatis中的@param注解的用法
用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中 下午在写转账操作时,dao接口中的方法 @Update(update ...