为了账号安全,请及时绑定邮箱和手机立即绑定

在C++怎么用程序判断一个变量、函数、实例是否为某个类型?

在C++怎么用程序判断一个变量、函数、实例是否为某个类型?

GCT1015 2019-04-03 10:07:50
在C++怎么用程序判断一个变量、函数、实例是否为某个类型,以及怎样得到这个类型的名字并作为字符串输出
查看完整描述

6 回答

?
慕粉4447226

TA贡献2条经验 获得超0个赞

用模板特化可以实现的。 楼主可以了解一下libboost库,里面的模板元编程有对应的解决方案。
查看完整回答
反对 回复 2019-11-15
?
慕粉4447226

TA贡献2条经验 获得超0个赞

使用元模板编程可以实现: template <typename T1,typename T2> struct IsSame{ static const bool Value=false; }; template <typename T> struct IsSame<T>{ static const bool Value=true; }; 如果两个模板参数相同,那么IsSame会特化为第二种形式,此时Value的值为真。 元模板编程是图灵完整的,还可以完成很多东西,例如判断继承关系、判断类里面是否有某种符号、判断类是否有纯虚函数、使用c++98判断表达式类型等等。这些功能都是编译期实现的,没有运算负担。不好的就是有点难学,编译速度会变慢。楼主可以了解一下boost库。
查看完整回答
反对 回复 2019-11-15
?
侃侃无极

TA贡献2051条经验 获得超10个赞

if(sizeof(int)==sizeof(name))printf("变量name是 int 数据类型");
简单的数据类型可以,需要先检查一下你需要判断的数据类型的字节数各为多少?如果有重复的就比较麻烦啦。例如:float与long就都是4,就看你的需求啦。

查看完整回答
反对 回复 2019-04-12
?
手掌心

TA贡献1942条经验 获得超3个赞

C语言没有反射。最多用sizeof来判断变量大小,但也不能精确的分辨类型。
要不你把所有要用到的变量名和类型放列表里遍历?

查看完整回答
反对 回复 2019-04-12
  • 6 回答
  • 0 关注
  • 4842 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信