【读书笔记】深入应用C++11代码优化与工业级应用 读书笔记01
第一章 使用C++11让程序更简洁、更现代
1.1 类型推导
1.1.1 auto类型推导
1、auto关键字的新意义
不同于python等动态类型语言的运行时进行变量类型的推导,隐式类型定义的类型推导发生在编译期。它的作用是让编译器自动推导出这个变量的类型,而不需要显示指定类型。
下面是auto的一些基本用法:
auto x = ; //ok:x是int类型
auto pi = new auto(); //ok:pi被推导为int*
const auto *v = &x, u = ; //ok:v是const int*类型,u是const int 类型
static auto y = 0.0; //ok:y是double类型
auto int r; //error:auto不再表示存储类型指示符
auto s; //error:auto无法推导出s的类型
上面的代码中:字面量5是一个const int类型,变量x将被推导为int类型(const被丢弃,后面做说明),并被初始化为5;pi的推导说明auto还可以被用于new操作符;对于v和u的推导需要注意两点(1)虽然经过前面的const auto *v = &x的推导,auto的类型可以确定为int了,但是u仍然必须要写后面的“= 6”,否则编译将报错。(2)u的初始化不能编译器推导产生二义性。例如,把u的初始化改为“u = 6.0”,编译器将被会报错。
使用auto声明的变量必须马上初始化(或者已经初始化完了,如上面的引用),以让编译器推导出它的实际类型,并在编译时将auto占位符替换为真正的类型。
2、auto的推导规则
auto可以结合指针、引用一起来使用,还可以带上cv限定符(cv-qualifier、const和volatile限定符的统称)。下面再看一些例子:
1.1.2 decltype关键字
1.1.3 返回类型后置语法---auto和decltype的结合使用
【读书笔记】深入应用C++11代码优化与工业级应用 读书笔记01的更多相关文章
- PHP学习笔记 - 进阶篇(11)
PHP学习笔记 - 进阶篇(11) 数据库操作 PHP支持哪些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数据库有MsSQL,MySQL,Syba ...
- 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记
机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习作者:米仓山下时间: ...
- 读书笔记 effective c++ Item 11 在operator=中处理自我赋值
1.自我赋值是如何发生的 当一个对象委派给自己的时候,自我赋值就会发生: class Widget { ... }; Widget w; ... w = w; // assignment to sel ...
- 《C专家编程》读书笔记之第8~11章
八.为什么程序员无法分清万圣节和圣诞节 1. 整形提升是指char,short int和位段类型(无论signed或unsigned)以及枚举类型将被提升为int或unsigned int(如果int ...
- Web 在线文件管理器学习笔记与总结(11)获取文件夹信息 (12)返回上一级操作
(11)获取文件夹信息 文件夹没有修改操作. index.php: <?php require 'dir.func.php'; require 'file.func.php'; require ...
- 学习笔记之IKM C++ 11
https://github.com/haotang923/interview/tree/master/IKM Q1. If most of the calls to function foo() b ...
- C++学习笔记16,C++11中的显式的默认构造函数以及显示删除默认构造函数
在早期的C++中.假设须要一些接受一些參数的构造函数,同一时候须要一个不接收不论什么參数的默认构造函数.就必须显示地编写空的默认构造函数.比如: //tc.h class A{ private: in ...
- [DeeplearningAI笔记]卷积神经网络4.11一维和三维卷积
4.4特殊应用:人脸识别和神经网络风格转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 4.11一维和三维卷积 二维和一维卷积 对于2D卷积来说,假设原始图像为\(14*14*3\)的三通 ...
- 关于BenchMark/c++11计时器/Chrome:tracing 的一些笔记
A benchmark is a test of the performance of a computer system. 基准测试是对计算机系统的性能的测试 计时器 性能的指标就是时间,在c+ ...
随机推荐
- cordova热更新插件的使用:cordova-hot-code-push-plugin
1. 添加插件:cordova plugin add cordova-hot-code-push-plugin 2. 先打开cli,执行命令 npm install -g cordova-hot-co ...
- Markdown使用方法
目录 Markdown 简明语法手册 1. 斜体和粗体 2. 分级标题 这是一个一级标题 这是一个二级标题 这是一个三级标题 3. 外链接 4. 无序列表 5. 有序列表 6. 文字引用 7. 行内代 ...
- python学习路程1
常用的转义字符还有: \n 表示换行 \t 表示一个制表符 \\ 表示 \ 字符本身 任务 请将下面两行内容用Python的字符串表示并打印出来: Python was started in 1989 ...
- Azure Redis Cache (5) Redis Cache Cluster集群模式
<Windows Azure Platform 系列文章目录> Redis Cluster 3.0之后的版本,已经支持Redis Cluster集群模式,Redis Cluster采用无中 ...
- https://api.highcharts.com/gantt/
<a href="https://api.highcharts.com/gantt/">https://api.highcharts.com/gantt/</a& ...
- Python递归调用
递归调用:在调用一个函数过程中,直接或间接又调用该函数本身,称之为递归调用 递归必备的2个阶段 1递推 2回溯 当递推结束后就可以进行回溯了 Python默认设置递归层数为1000 递归示例: de ...
- python之路——7
王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594 复习 1. 小数据池 int -5---256 str 特殊字符 *202. ASCII码 8位 1字节 - ...
- spring mvc 注解整理(一)
@Controller和@RestController: RestController = @ResponseBody + @Controller 所有返回都是json类型,无法跳转到jsp页面,但 ...
- Web项目中得到访问者的真实ip
Web项目中得到访问者的真实ip 描述:最近要实现个功能是要记录管理员登录的真实ip,但在项目中如果直接使用request.getRemoteAddr()获得ip的话,获得的可能不是真实ip,是因为使 ...
- Node学习笔记(三)
1.EventEmitter常用的API EventEmitter.on(event, listener) 为指定事件注册一个监听器,接受一个字符串 event 和一个回调函数 listener. E ...