c++:自动获取数据类型,auto与decltype的异同
来源:互联网 发布:淘宝网费列罗巧克力 编辑:程序博客网 时间:2024/05/22 13:06
//decltype、auto 自动推理数据类型//auto 无法区分是否是引用 是否是常量还是变量//decltype 基本数据类型是一定可以区分的,可以获取常量属性 可是识别引用//typeid只能获取基本数据类型 不能获取引用以及常量auto main()->int{const vector<int>myint{ 1, 2, 3, 4, 5, 7, 8 };//myint[0] = 1223;//error 常量,不允许被修改auto inta = myint[0];cout << typeid(inta).name() << endl;//auto获取数据的类型 无法获取数据的属性decltype(myint[0]) intd = 1;//根据myint推理出intd的类型cout << typeid(myint).name() << endl;cout << typeid(intd).name() << endl;cout << typeid(myint[0]).name() << endl;inta = 88;const double db(10.8);const double &rdb(db);cout << typeid(inta).name() << endl;cout << typeid(db).name() << endl;cout << typeid(rdb).name() << endl;struct mys//结构体{decltype(rdb) r1;//如果是引用将占4字节 否则占8字节//auto inta = myint[0];//auto不能在结构体内部};cout << sizeof(mys) << endl;cin.get();return 0;}//auto 无法区分是否是引用 是否是常量还是变量void main2(){int a = 10;int &ra(a);auto i1 = 30;auto i2 = a;//无法区分 i1 i2是否是常量还是变量auto i3 = ra;cout << typeid(i1).name() << endl;cout << typeid(i2).name() << endl;cout << typeid(i3).name() << endl;cin.get();}//decltype可获取常量属性以及引用属性 无法区分是否是引用 是否是常量还是变量void main3(){int a = 10;int &ra(a);decltype(a) i1 = 123;decltype(12.4) i2 = a;//doubledecltype(ra) i3 = ra;decltype(12.4l) i4 = a;//long doubledecltype(12.4f) i5 = a;//floatdecltype(12l) i6 = a;//longcout << typeid(i1).name() << endl;cout << typeid(i2).name() << endl;cout << typeid(i3).name() << endl;cout << typeid(ra).name() << endl;cout << typeid(i4).name() << endl;cout << typeid(i5).name() << endl;cout << typeid(i6).name() << endl;cin.get();}auto main()->int{const double db = 12.0;const double &rdb(db);struct mystruct {//auto a;//error 结构体中不能使用auto};auto dbx = rdb;dbx = 99.88;cout << db << endl;//auto、typeid 无法区别常量、变量以及引用cout << dbx << endl;cin.get();return 0;}
0 0
- c++:自动获取数据类型,auto与decltype的异同
- 自动获取类型的auto和decltype类型说明符
- auto与 decltype 的区别
- C++ auto与decltype的区别
- C++11的auto与decltype
- auto 与decltype
- auto 与 decltype
- auto与decltype区别
- auto与decltype
- auto与decltype
- C++11 理解 (一) 之 auto与decltype的运用
- auto 和 decltype的区别
- c++11之auto自动类型推断和decltype类型获取
- C语言11中的auto和decltype
- C++primer---constexpr、类型别名、auto、decltype
- c++11新特性---auto 与 decltype
- auto 与decltype 两种类型推断
- C++11的auto和decltype关键字
- [HDU 4324]Triangle LOVE[找环]
- 4)Win10-UWA开发 创建第一个应用 “Hello, world” (XAML/C#)
- maven error: unmappable character for encoding ASCII
- Polymer 1.0 升级指南
- HTML中块级元素和行内元素
- c++:自动获取数据类型,auto与decltype的异同
- Emacs linux C 代码风格配置
- 献给自己和身边的人
- c++:数据类型的判断type_traits
- Android学习之自定义view(二)
- A. Arrays(Codeforces Round #317 水题)
- struts2 中文乱码解决办法
- RabbitMQ 学习笔记
- B. Order Book(Codeforces Round #317 )