C++17完全指南
5星 · 超过95%的资源 需积分: 27 114 浏览量
更新于2024-07-16
3
收藏 3.24MB PDF 举报
"C++17 The Complete Guide 是一本由Nicolai M. Josuttis编写的书籍,专注于介绍C++17标准的详细内容。本书的首次出版日期为2019年12月20日,版权由Nicolai Josuttis所有。此书在 Leanpub 平台上出售,并采用LaTeX文档处理系统排版。作者鼓励读者通过轻量级工具和多次迭代来提供反馈,以便不断改进和完善内容。书中包含了关于C++17的前言、版本信息、致谢、书籍介绍、阅读前提、书籍结构、阅读方式以及错误术语等章节。"
C++17是C++编程语言的一个重要版本,它引入了许多新特性以提高效率、可读性和代码的简洁性。以下是一些C++17的关键知识点:
1. 变量模板初始化:允许在模板声明时就进行初始化,使得模板更具通用性。
2. 自动类型推断(auto关键字)增强:在函数返回类型中也可以使用auto,简化了函数签名。
3. 条件变量(std::condition_variable_any):与std::condition_variable不同,它可以等待任何类型的锁,增加了多线程编程的灵活性。
4. 展开表达式(fold expressions):这使得元编程更加简洁,可以用于求和、比较等操作。
5. 新的初始化语法(structured bindings):可以一次性地为多个变量分配解构出来的值,如从std::tuple或自定义结构体中解包元素。
6. 将字面量运算符重载为成员函数:允许在类类型中定义字面量运算符,如`operator""_myunit()`。
7. if和switch语句的初始化:if和switch语句现在可以包含初始化语句,这使得代码更紧凑,减少了临时变量的使用。
8. 字符串字面量(std::string_view):提供了一种不拥有内存的字符串视图,增强了字符串操作的性能。
9. 并行算法库(<execution>头文件):引入了并行版本的STL算法,如std::transform和std::sort,可以利用多核处理器提高计算速度。
10. noexcept指定器改进:现在可以更精确地指定函数是否可能抛出异常,有助于优化和异常安全。
11. 模板类的推导指引(template argument deduction guides):帮助编译器在模板实例化时选择正确的构造函数。
12. 标准库改进:包括新容器(如std::optional和std::variant)和新算法(如std::make_unique和std::make_shared的变体)。
13. 元组的成员访问:通过std::apply函数,可以方便地访问和操作元组的所有元素。
14. constexpr的增强:更多函数和操作现在可以在编译时计算,进一步扩展了C++的静态编程能力。
Nicolai M. Josuttis的《C++17 The Complete Guide》详细讲解了这些特性的用法和背后的原理,是学习和掌握C++17标准的重要参考资料。通过这本书,读者不仅可以理解新的语言特性,还能了解到如何在实际项目中有效地应用它们。
2013-09-12 上传
2020-07-27 上传
2021-05-05 上传
2009-04-19 上传
2017-12-30 上传
2011-10-15 上传
2017-09-19 上传
princeiscc
- 粉丝: 0
- 资源: 2
最新资源
- myeclipse快捷键大全
- Sun云计算指南(中文)
- C#程序员基础必备 c#教程
- 给定三维空间的坐标,找出这个三维空间中的洞
- QTP中一些基础代码的积累
- POWERPCB完全教学.txt
- 如何用VC++6.0 MFC 实现计算器.txt
- 常用电子元器件参考资料
- sun.pdfsun.pdfsun.pdfsun.pdf
- PCF8563 日历时钟芯片原理及应用设计
- 用单片机控制直流电机
- Thinking in Java简体中文第2版
- VSS2005之Explorer功能及技巧
- VSS2005之Administrator功能及技巧
- c8051f控制比例电磁铁
- 多核处理器大规模并行系统中的任务分配问题及算法