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)纯数 ...
随机推荐
- 解决bcp导出CSV文件没有表头
思路: 1.输出表头文件到指定目录 2.bcp导出csv文件到temp目录 3.将以上导出文件与表头文件合并 4.删除temp目录下的文件 实现: create proc exportCSV ( @i ...
- js的常用场景效果
转自https://www.cnblogs.com/tangdiao/p/9481681.html 1.checkbox的使用场景,学习之后就是购物车页面的自动计算的上手示例. 做成给checkbox ...
- 工厂模式-C#改良实现
参考了下网上的工厂模式实现,总的来说例子还是OK得,但是示例太单一了,因此我做了下优化的改良实现. namespace DP { public interface ICreditCard { stri ...
- mysql初始化/usr/local/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
[root@test153 ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql - ...
- SQL Server Agent作业执行CmdExec(bat)命令报权限问题
写了一个bat命令,定期去清理一些SQL Server的Dump文件,然后配置成SQL Server作业,作业执行时报权限错误,具体错误信息如下所示: Message Executed as user ...
- centos安装Redis和设置远程访问
记录下步骤以后用到时翻一翻. 一.下载官方的文件包和编译 在centos下载依赖库: yum install gcc tcl 在redis官网的下载页面,这里可以选择离线包或在线下载. 我选择在线的, ...
- Oracle对时间的相关操作
目录导航: 1. 年操作 2. 月操作 3. 周操作 4. 天操作 5. 时操作 6. 分操作 7. 秒操作 1.年操作 SELECT add_months(SYSDATE, -12) FROM du ...
- Linux系统学习 十七、VSFTP服务—本地用户访问—用户访问控制
FTP相关文件中用户控制列表文件 /etc/vsftpd/ftpusers #该文件永远都是黑名单(针对访问ftp服务,一般不做修改) /etc/vsftpd/user_list ...
- 使用Eclipse开发Web项目(JSP)——简单登录、无sql
1.使用Eclipse开发Web项目(JSP) tomcat 2.在Eclipse中创建的Web项目: 浏览器可以直接访问webContent中的文件 例如http://localhost:8080/ ...
- A:mysql数据库章节导航
mysql数据库章节导航 mysql5.7的安装(yum和二进制安装) 数据库的基本操作 索引 权限管理 日志管理 逻辑备份mysqldump 物理备份:xtrabackup 主从复制-传统方式 主从 ...