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

在C++怎么用程序判断一个变量、函数、实例是否为某个类型,以及怎样得到这个类型的名字并作为字符串输出


GCT1015
浏览 4843回答 6
6回答

慕粉4447226

用模板特化可以实现的。 楼主可以了解一下libboost库,里面的模板元编程有对应的解决方案。

慕粉4447226

使用元模板编程可以实现: 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库。

侃侃无极

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

手掌心

C语言没有反射。最多用sizeof来判断变量大小,但也不能精确的分辨类型。要不你把所有要用到的变量名和类型放列表里遍历?
打开App,查看更多内容
随时随地看视频慕课网APP