在C++怎么用程序判断一个变量、函数、实例是否为某个类型,以及怎样得到这个类型的名字并作为字符串输出
6 回答
慕粉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库。
侃侃无极
TA贡献2051条经验 获得超10个赞
if(sizeof(int)==sizeof(name))printf("变量name是 int 数据类型");
简单的数据类型可以,需要先检查一下你需要判断的数据类型的字节数各为多少?如果有重复的就比较麻烦啦。例如:float与long就都是4,就看你的需求啦。
- 6 回答
- 0 关注
- 4842 浏览
添加回答
举报
0/150
提交
取消