type_info和typeid
来源:互联网 发布:mac os 10.8 iso镜像 编辑:程序博客网 时间:2024/06/06 09:42
type_info提供了name、before等方法,可惜你却无法使用它。因为它的构造函数私有化。
typeid返回一个type_info,可惜你却无法保存它。
你只能使用:
cout<<(typeid(A) == typeid(B))<<endl;
type_info t(int);
cout<<t.name()<<endl;
class A...{};
class B :public A...{};
TypeInfo info = typeid(B*);
A* p = new A;
cout<<(typeid(p) == info)<<endl;
delete p;
cout<<"pointer:"<<TypeTraits< A* >::isPointer<<endl;
MyData* pdata = new MyData;
cout<<(typeid(*pdata) == typeid(MyData))<<endl;
delete pdata;
MyData data;
cout<<(typeid(data) == typeid(MyData))<<endl;
class SData :public MyData...{};
cout<<(typeid(SData) == typeid(MyData))<<endl;
const type_info* p = &(typeid(int));
cout<<p->name()<<endl;
type_info t(int);
cout<<t.name()<<endl;
class A...{};
class B :public A...{};
TypeInfo info = typeid(B*);
A* p = new A;
cout<<(typeid(p) == info)<<endl;
delete p;
cout<<"pointer:"<<TypeTraits< A* >::isPointer<<endl;
MyData* pdata = new MyData;
cout<<(typeid(*pdata) == typeid(MyData))<<endl;
delete pdata;
MyData data;
cout<<(typeid(data) == typeid(MyData))<<endl;
class SData :public MyData...{};
cout<<(typeid(SData) == typeid(MyData))<<endl;
const type_info* p = &(typeid(int));
cout<<p->name()<<endl;
对于一个如此好用的东西无法保存无法创建太可惜了,而且loki后面也要用这个东西,所以loki提供了这样一个包装类,你可以创建、赋值、拷贝,可以使用before也提供name功能,还提供全部比较动作。
ps
before:
cout<<(typeid(int).before(typeid(float)))<<endl; //true
cout<<(typeid(float).before(typeid(int)))<<endl; //false
cout<<(typeid(float).before(typeid(int)))<<endl; //false
- type_info和typeid
- type_info 和 typeid
- 关于type_info与typeid
- C++基础::typeid、type_info
- typeid为type_info友元函数
- RTTI运行时类型识别typeid,type_info,dynamic_cast关建字
- c\c++复习基础要点15----c++运行时类型识别 dynamic_cast typeid type_info
- 三十三、RTTI(runtime type information)、dynamic_cast运算符、typeid运算符、type_info
- typeid和异常
- typeid()和dynamic_cast<>()
- typeid
- typeid
- typeid
- typeid
- typeid
- typeid
- typeid
- typeid
- 装 修 宝 典
- 实现上传下载(jspSmartUpload)
- 清华梦的粉碎—写给清华大学的退学申请
- 成功提取了Oracle客户端
- 在Struts 2中实现文件上传
- type_info和typeid
- JavaScript 仿关机效果的图片层
- web.xml元素介绍
- Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定之二:使用外部URL的XML文件)
- Web小结---Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL,国际化与汉字的编码
- [osol-discuss] Failure to complete solaris registration wizard
- 与VC6相配的SDK版本
- AJAX_01
- 如何在C# 中使用WMI 实现远程查询和共享