导入
简介
了解 C++17 修复的语言模糊问题及本章学习要点
为什么选择 C++17?
C++ 是一门学习和完全掌握都颇具挑战性的语言,其中某些部分对程序员来说可能令人困惑。
造成这种不清晰的原因之一,是实现(编译器)被赋予了较大的自由度。例如,语言的某些部分故意保持模糊,以允许更激进的优化。此外,与 C 语言的兼容性要求也带来了额外的复杂性。
C++17 解决了语言中一些最常见的“漏洞”。
本章你将学到:
- 什么是表达式求值顺序,以及它为何可能导致意外结果
- 语言中对拷贝消除的保证
- 异常规范作为类型系统的一部分
- 对(过度)对齐数据的内存分配
让我们从 C++17 更严格的表达式求值顺序开始吧。