Logo
Section 1 / 12

简介

了解 C++17 修复的语言模糊问题及本章学习要点

导入

简介

了解 C++17 修复的语言模糊问题及本章学习要点

为什么选择 C++17?

C++ 是一门学习和完全掌握都颇具挑战性的语言,其中某些部分对程序员来说可能令人困惑。

造成这种不清晰的原因之一,是实现(编译器)被赋予了较大的自由度。例如,语言的某些部分故意保持模糊,以允许更激进的优化。此外,与 C 语言的兼容性要求也带来了额外的复杂性。

C++17 解决了语言中一些最常见的“漏洞”。

本章你将学到:

  • 什么是表达式求值顺序,以及它为何可能导致意外结果
  • 语言中对拷贝消除的保证
  • 异常规范作为类型系统的一部分
  • 对(过度)对齐数据的内存分配

让我们从 C++17 更严格的表达式求值顺序开始吧。

已移除和弃用的库功能

表达式求值顺序