《深入理解C++11:C++11新特性解析与应用》

《华章科技:深入理解C++11:C++11新特性解析与应用》一共8章:第1章从设计思维和应用范畴两个维度对C++11新标准中的所有特性进行了分类,呈现了C++11新特性的原貌;第2章讲解了在保证与C语言和旧版C++标准充分兼容的原则下增加的一些新特性;第3章讲解了具有广泛可用性、能与其他已有的或者新增的特性结合起来使用的、具有普适性的一些新特性;第4章讲解了C++11新标准对原有一些语言特性的改进,这些特性不仅能让C++变得更强大,还能提升程序员编写代码的效率;第5章讲解了C++11在安全方面所做的改进,主要涵盖枚举类型安全和指针安全两个方面的内容;第6章讲解了为了进一步提升和挖掘C++程序性能和让C++能更好地适应各种新硬件的发展而设计的新特性,如多核、多线程、并行编程方面的新特性;第7章讲解了一些颠覆C++一贯设计思想的新特性,如lambda表达式等;第8章讲解了C++11为了解决C++编程中各种典型实际问题而做出的有效改进,如对Unicode的深入支持等。附录中则介绍了C++11标准与其他相关标准的兼容性和区别、C++11中弃用的特性、编译器对C++11的支持情况,以及学习C++11的相关资源。

【目录】

第1章 新标准的诞生

1.1 曙光:C++11标准的诞生 
1.1.1 C++11/C++0x(以及C11/C1x)-新标准诞生 
1.1.2 什么是C++11/C++0x 
1.1.3 新C++语言的设计目标 
1.2 今时今日的C++ 
1.2.1 C++的江湖地位 
1.2.2 C++11语言变化的领域 
1.3 C++11特性的分类 
1.4 C++特性一览 
1.4.1 稳定性与兼容性之间的抉择 
1.4.2 更倾向于使用库而不是扩展语言来实现特性 
1.4.3 更倾向于通用的而不是特殊的手段来实现特性 
1.4.4 专家新手一概支持 
1.4.5 增强类型的安全性 
1.4.6 与硬件紧密合作 
1.4.7 开发能够改变人们思维方式的特性 
1.4.8 融入编程现实 
1.5 本书的约定 
1.5.1 关于一些术语的翻译 
1.5.2 关于代码中的注释 
1.5.3 关于本书中的代码示例与实验平台 
第2章 保证稳定性和兼容性 
2.1 保持与C99兼容 
2.1.1 预定义宏 
2.1.2 __func__预定义标识符 
2.1.3 _Pragma操作符 
2.1.4 变长参数的宏定义以及__VA_ARGS__ 
2.1.5 宽窄字符串的连接 
2.2 long long整型 
2.3 扩展的整型 
2.4 宏__cplusplus 
2.5 静态断言 
2.5.1 断言:运行时与预处理时 
2.5.2 静态断言与static_assert 
2.6 noexcept修饰符与noexcept操作符 
2.7 快速初始化成员变量 
2.8 非静态成员的sizeof 
2.9 扩展的friend语法 
2.10 final/override控制 
2.11 模板函数的默认模板参数 
2.12 外部模板 
2.12.1 为什么需要外部模板 
2.12.2 显式的实例化与外部模板的声明 
2.13 局部和匿名类型作模板实参 
2.14 本章小结 
第3章 通用为本,专用为末 
3.1 继承构造函数 
3.2 委派构造函数 
3.3 右值引用:移动语义和完美转发 
3.3.1 指针成员与拷贝构造 
3.3.2 移动语义 
3.3.3 左值、右值与右值引用 
3.3.4 std::move:强制转化为右值 
3.3.5 移动语义的一些其他问题 
3.3.6 完美转发 
3.4 显式转换操作符 
3.5 列表初始化 
3.5.1 初始化列表 
3.5.2 防止类型收窄 
3.6 POD类型 
3.7 非受限联合体 
3.8 用户自定义字面量 
3.9 内联名字空间 
3.10 模板的别名 
3.11 一般化的SFINEA规则 
3.12 本章小结 
第4章 新手易学,老兵易用 
4.1 右尖括号>的改进 
4.2 auto类型推导 
4.2.1 静态类型、动态类型与类型推导 
4.2.2 auto的优势 
4.2.3 auto的使用细则 
4.3 decltype 
4.3.1 typeid与decltype 
4.3.2 decltype的应用 
4.3.3 decltype推导四规则 
4.3.4 cv限制符的继承与冗余的符号 
4.4 追踪返回类型 
4.4.1 追踪返回类型的引入 
4.4.2 使用追踪返回类型的函数 
4.5 基于范围的for循环 
4.6 本章小结 
第5章 提高类型安全 
5.1 强类型枚举 
5.1.1 枚举:分门别类与数值的名字 
5.1.2 有缺陷的枚举类型 
5.1.3 强类型枚举以及C++11对原有枚举类型的扩展 
5.2 堆内存管理:智能指针与垃圾回收 
5.2.1 显式内存管理 
5.2.2 C++11的智能指针 
5.2.3 垃圾回收的分类 
5.2.4 C++与垃圾回收 
5.2.5 C++11与最小垃圾回收支持 
5.2.6 垃圾回收的兼容性 
5.3 本章小结 
第6章 提高性能及操作硬件的能力 
6.1 常量表达式 
6.1.1 运行时常量性与编译时常量性 
6.1.2 常量表达式函数 
6.1.3 常量表达式值 
6.1.4 常量表达式的其他应用 
6.2 变长模板 
6.2.1 变长函数和变长的模板参数 
6.2.2 变长模板:模板参数包和函数参数包 
6.2.3 变长模板:进阶 
6.3 原子类型与原子操作 
6.3.1 并行编程、多线程与C++11 
6.3.2 原子操作与C++11原子类型 
6.3.3 内存模型,顺序一致性与memory_order 
6.4 线程局部存储 
6.5 快速退出:quick_exit与at_quick_exit 
6.6 本章小结 
第7章 为改变思考方式而改变 
7.1 指针空值-nullptr 
7.1.1 指针空值:从0到NULL,再到nullptr 
7.1.2 nullptr和nullptr_t 
7.1.3 一些关于nullptr规则的讨论 
7.2 默认函数的控制 
7.2.1 类与默认函数 
7.2.2 “= default”与“= deleted” 
7.3 lambda函数 
7.3.1 lambda的一些历史 
7.3.2 C++11中的lambda函数 
7.3.3 lambda与仿函数 
7.3.4 lambda的基础使用 
7.3.5 关于lambda的一些问题及有趣的实验 
7.3.6 lambda与STL 
7.3.7 更多的一些关于lambda的讨论 
7.4 本章小结 
第8章 融入实际应用 
8.1 对齐支持 
8.1.1 数据对齐 
8.1.2 C++11的alignof和alignas 
8.2 通用属性 
8.2.1 语言扩展到通用属性 
8.2.2 C++11的通用属性 
8.2.3 预定义的通用属性 
8.3 Unicode支持 
8.3.1 字符集、编码和Unicode 
8.3.2 C++11中的Unicode支持 
8.3.3 关于Unicode的库支持 
8.4 原生字符串字面量 
8.5 本章小结 
附录A C++11对其他标准的不兼容项目 
附录B 弃用的特性 
附录C 编译器支持 
附录D 相关资源

>>C++ Primer

C++11新标准学习的更多相关文章

  1. C++11新标准:nullptr关键字

    一.nullptr的意义 1.NULL在C中的定义 #define NULL (void*)0 2.NULL在C++中的定义 #ifndef NULL #ifdef __cplusplus #defi ...

  2. C++11新标准:decltype关键字

    一.decltype意义 有时我们希望从表达式的类型推断出要定义的变量类型,但是不想用该表达式的值初始化变量(如果要初始化就用auto了).为了满足这一需求,C++11新标准引入了decltype类型 ...

  3. C++11新标准:auto关键字

    一.auto意义 编程时常常需要把表达式的值赋给变量,这就要求在声明变量的时候清楚地知道表达式的类型,然后要做到这一点并非那么容易.为了解决这个问题,C++11新标准引入了auto类型说明符,用它就能 ...

  4. c++11新标准for循环和lambda表达式

    :first-child { margin-top: 0px; } .markdown-preview:not([data-use-github-style]) h1, .markdown-previ ...

  5. 关注C++细节——C++11新标准之decltype的使用注意

    c++11新特性--decltype decltype是C++11加入的一个新的keyword,目的是选择并返回操作数的数据类型,重要的是,在此过程中编译器分析表达式并得到它的类型,却不实际计算表达式 ...

  6. 基于c++11新标准开发一个支持多线程高并发的网络库

    背景 新的c++11标准出后,c++语法得到了非常多的扩展,比起以往不论什么时候都要灵活和高效,提高了程序编码的效率,为软件开发者节省了不少的时间. 之前我也写过基于ACE的网络server框架,但A ...

  7. C++11 新特性学习

    在Linux下编译C++11 #include<typeinfo> int main() { auto a=; cout<<typeid(a).name()<<en ...

  8. C++11新标准

    1. 新类型 long long和unsigned long long: char16_t 和 char32_t: 新增原始字符串: 2. 统一的初始化 C++11扩大了用大括号括起的列表(初始化列表 ...

  9. C++ 11新标准实现POJ No.1002-487-3279

    487-3279(重复的电话号码查询)(标签:优先队列,哈希表) 题目描述 企业喜欢用容易被记住的电话号码.让电话号码容易被记住的一个办法是将它写成一个容易记住的单词或者短语.例如,你需要给滑铁卢大学 ...

随机推荐

  1. Spring Cloud 入门 之 Ribbon 篇(二)

    原文地址:Spring Cloud 入门 之 Ribbon 篇(二) 博客地址:http://www.extlight.com 一.前言 上一篇<Spring Cloud 入门 之 Eureka ...

  2. RK3288 红外遥控器增加系统中已有的键值

    转载请注明出处:https://www.cnblogs.com/lialong1st/p/10066673.html CPU:RK3288 系统:Android 5.1 1.查看遥控器的用户码和键值, ...

  3. haproxy 安装与配置

    一. Haproxy 介绍 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.根据官方数据,其最高极限支持10G的并发.HAP ...

  4. 工欲善其事必先利其器系列之:更换Visual Studio主题.

    前言:如果你厌烦的vs2010的蓝色风格主题,可以使用Visual Studio Color Theme Editor这款插件来改变主题风格,不过我还是喜欢METRO风格. 效果图预览: Windwo ...

  5. eaccelerator详解

    之前在看书的时候看到一个eaccelerator,以前也没用过 不知道是啥东东,不知道以后会用到不,先mark一下吧 eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了 ...

  6. MySQL性能调优 – 你必须了解的15个重要变量

    1.DEFAULT_STORAGE_ENGINE 如果你已经在用MySQL 5.6或者5.7,并且你的数据表都是InnoDB,那么表示你已经设置好了.如果没有,确保把你的表转换为InnoDB并且设置d ...

  7. 二、jdk命令之javah命令(C Header and Stub File Generator)

    目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...

  8. 在Windows命令行窗口中输入并运行PHP代码片段(不需要php文件)的方法

    有时候只是简单的为了测试某个php函数的效果,以前总是需要建一个php文件,复制这个文件的路径,再通过web访问或者用php命令执行这个php文件. 一直想要怎么才能不用创建文件,才能直接执行PHP代 ...

  9. C语言指针的一些题目

    1.将从键盘输入的每个单词的第一个字母转换成大写字母输入时各单词以空格隔开,用“.”结束输入 解体思路:  把输入的字符存入字符数组中直到输入".",然后调用函数,把字符串的第一个 ...

  10. 39. Combination Sum + 40. Combination Sum II + 216. Combination Sum III + 377. Combination Sum IV

    ▶ 给定一个数组 和一个目标值.从该数组中选出若干项(项数不定),使他们的和等于目标值. ▶ 36. 数组元素无重复 ● 代码,初版,19 ms .从底向上的动态规划,但是转移方程比较智障(将待求数分 ...