C++17 详解 9

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

3.2 带初始化语句的 ifswitch

C++17 提供了新版本的 ifswitch 语句:

if (init; condition)switch (init; condition)

阅读更多

C++17 详解 8

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

3 通用语言特性

完成了语言修复和阐明的章节后,现在我们准备好浏览其它广泛传播的特性了。本章中描述的改进也有可能使你的代码更加紧凑和富有表现力。

阅读更多

C++17 详解 6

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

2.2 有保证的复制消除

复制消除是一种流行的优化手段,它可以避免创建不必要的临时对象。

阅读更多

C++17 详解 5

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

2. 语言阐明

学习并完全理解 C++ 是很有挑战的,许多地方都让程序员很疑惑。缺乏明确行为的一个原因,可能是赋予了编译器实现自由选择的权利。比如,允许更激进的优化,或者为了向后兼容(或者兼容 C)的需要。C++17 回顾了几个最出名的“黑洞”并把它们做了处理。

阅读更多

C++17 详解 4

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

1.2 修复(Fixes)

修复的定义是有争论的。下边 3 条应该算是对在之前规则下缺失、不能正常工作的内容的修复。

阅读更多

C++17 详解 3

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

1.1.2 删除关键字 register

关键字 register 在 2011 年(C++11)被弃用,自那以后 register 已经没有意义,现在它被删除。这个关键字仍然被保留,有可能会在未来某个版本重新设计意图(比如关键字 auto 就是复用而来,现在它是一个全新的、更强大的特性)。

阅读更多

C++17 详解 2

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

1. 修复和弃用

C++17 标准现在有超过 1600 页,比 C++14 多出了 200 多页。幸运的是,语言规范在一些地方得到了清理,一些老旧的或潜在的坏特性随之被清除。

本章你将学到:

  • 从语言中删除了什么,比如:register 关键字,auto_ptrstd::random_shuffle
  • 已弃用并会在未来版本被删除的内容。
  • 修复内容,尤其是对“花括号初始化”(brace initialisation)的自动类型推导。
阅读更多

C++17 详解 1

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

第一部分——语言特性

C++17 是对 C++ 的一次重大更新,引入了大量语言特性。大多数新增特性让 C++ 更简洁更直截了当。

在本部分你将学到:

  • 被移除和被标记为已弃用的特性
  • C++ 是如何变得更精准的:比如,借助表达式求值顺序保证
  • 模版相关新特性:比如 if constexpr、折叠表达式(fold expressions
  • 新的标准属性(attributes
  • 如何借助结构化绑定(structured binding)、内联变量(inline variables)、编译时 if 和类模版参数推导(template argument deduction for classes)写出更简洁更具表现力的代码
阅读更多

2020 年学习规划

2020年会整体围绕StreamingCore项目运作。先期会先做一部分复习工作,比如C++相关、工程相关;其它所列知识点会边学边应用。

尽量详细地列出各项,不断回顾并更新进度。

理论知识

复习C++

  • 《C++ Primer》 ✅
  • 《Effective Modern C++》 ❌
  • 《C++标准库》 ✅
  • 《Effective STL》 ❌
阅读更多