博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++:数据类型的推断type_traits
阅读量:6833 次
发布时间:2019-06-26

本文共 1965 字,大约阅读时间需要 6 分钟。

//推断左值右值引用void main(){	int i(10);//i是左值  有内存实体	int &ri(i);	int &&rri(i + 5);//右值引用	cout << is_lvalue_reference
::value << endl;//是左值不是引用 输出0 cout << is_lvalue_reference
::value << endl;//是左值引用输出1 cout << is_lvalue_reference
::value << endl;//是右值引用输出0 cin.get();}//此处的 decltype 引用常量都能够获取//检測是否是数组void main(){ int a[5]; int *p = a; cout << is_array
::value << endl;//数组输出1 cout << is_array
::value << endl;//非数组输出0 cin.get();}void main(){ int num = 123; double db = 23; cout << is_integral
::value << endl;//推断数据类型 int 1 cout << is_integral
::value << endl;//不是int型 0 string str1;//cpp中的string也是个类 cout << is_class
::value << endl;//1 cout << is_class
::value << endl;//1 cin.get();}template
void same(const T1 &t1, const T2&t2){ cout << is_same
::value << endl;//判定类型是否相等}//推断模板的数据类型void main(){ same(12, 34);//一样的数据类型输出 1 same(12, 34.23);//不一样输出 0 same('A', 34);//0 same("sdjbjabf", 34);//0 cin.get();}template
void same2(const T1 &t1, const T2&t2){ //cout << typeid(T1).name() << is_integral(t1) << endl;//error cout << typeid(T1).name() << " " << typeid(t1).name() << " " << is_integral
::value << endl; cout << is_same
::value << endl;}//推断模板的数据类型void main(){ same2(12, 34); same2(12, 34.23); same2('A', 34); same2("sdjbjabf", 34); cin.get();}int add(){ return 0;}double check(){ return 0;}class A{};class B{};template
void check_type(const T1 &t1, const T2 &t2,typename enable_if
::value>::type*p=nullptr){ cout << t1<<" "<
<<":类型同样"<< endl;}template
void check_type(const T1 &t1, const T2 &t2, typename enable_if
::value>::type*p = nullptr){ cout << t1 << " " << t2 << ":类型不同样" << endl;}//模板与type推断类型的异同 依据參数类型自己主动选择模板void main(){ check_type(12, 34); check_type(12.34, 0.12); check_type(12, 34.0); check_type(12, (float)34); check_type((int)12.34, (int)0.12); check_type('A','\n'); check_type("1234", "abcd"); check_type(add, check); A a; B b; check_type(&a, &b); cin.get();}
你可能感兴趣的文章
dns服务器在做nslookup测试的时候,出现dns timeout 2 seconds的错误解释
查看>>
定义封装的类类型 笔记
查看>>
行业数据获取
查看>>
SpringMvc+Hibernate+Mysql保存表情字符(昵称)到数据库报错的问题?
查看>>
微软2016校园招聘在线笔试 B Professor Q's Software [ 拓扑图dp ]
查看>>
TinyUI组件开发示例
查看>>
qt添加图标
查看>>
字节流高效缓冲区文件复制
查看>>
ColorMatrixColorFilter颜色过滤(离线用户的灰色头像处理)
查看>>
react:reducer-creator
查看>>
MyEclipse 总是弹出“multiple Errors have Occurred”
查看>>
sas实例合集
查看>>
C语言解释器的实现--存储结构(一)
查看>>
Java Eclipse常规设置
查看>>
ios官方菜单项目重点剖析附项目源码
查看>>
构建javaweb项目
查看>>
MVC5学习笔记
查看>>
大大大大板子
查看>>
使用博客园时,如何在自己的博客上显示头像?
查看>>
【作业】简单绘图程序
查看>>