C++17 详解
338 页
Chinese
PDF
4.5

C++17 详解

C++17 详解

作者:

年份:

简介:

引言

由 Bartłomiej Filipek 所著的《C++17 详解》一书于 2019 年出版,并迅速成为关于 C++17 新标准最权威的参考资料之一。这并非又一本面向初学者的教程,而是一本深入的技术指南,旨在帮助中高级开发者掌握 C++17 标准的所有关键特性,并学会在实践中加以运用。本书包含 338 页浓缩信息,并辅以代码示例和实用建议。

本书内容是什么?

《C++17 详解》详细剖析了 C++17 标准带来的各项新特性。作者从语言层面到标准库层面,逐一深入探讨了每个特性。在本书中,您将找到:

  • 结构化绑定(structured bindings) — 如何将元组、对组和结构体解包为单独的变量。
  • if constexpr — 在编译时编译条件分支,从而编写更高效、更简洁的模板代码。
  • std::optional、std::variant、std::any — 用于安全处理可选值、替代类型和动态类型的新型包装类型。
  • string_view — 一种非拥有型字符串视图,可在不复制的情况下加速子字符串处理。
  • 并行算法 — 标准库现在支持算法的并行执行(std::execution::par)。
  • 文件系统(std::filesystem) — 跨平台的文件和目录操作。
  • constexpr 的改进 — 现在可以编写包含循环、分支甚至(有限制的)动态内存分配的 constexpr 函数。
  • 新属性 — [[fallthrough]]、[[maybe_unused]]、[[nodiscard]] 等。
  • 模板简化 — 推导指引(deduction guides)、模板参数中的 auto、折叠表达式(fold expressions)。

每一章都遵循“从理论到实践”的原则:首先解释语法和语义,然后展示实际使用示例,最后总结常见错误和建议。

本书适合哪些读者?

本书面向已经具备 C++ 使用经验(至少达到 C++11/14 水平)并希望快速、高质量掌握 C++17 的程序员。它将有助于:

  • 从较旧标准迁移到 C++17 的开发者。
  • 编写高负载或嵌入式系统、希望利用新特性进行优化的工程师。
  • 学习现代 C++ 的高年级学生和教师。
  • 所有希望编写更安全、更具表现力且更高效代码的人。

本书不适合初学者——理解书中内容需要扎实掌握 C++ 基础知识(指针、模板、STL)。

读者将学到什么?

阅读本书后,您将能够:

  • 在日常工作中自信地使用 C++17 的所有主要新特性。
  • 通过结构化绑定和 if constexpr 编写更清晰、更简洁的代码。
  • 应用 std::optional 和 std::variant 进行安全的错误处理和替代状态管理。
  • 无需外部库即可处理文件系统。
  • 使用 STL 中的并行版本加速算法。
  • 理解新类型的内部机制,并学会避免常见陷阱。
  • 为过渡到 C++20 做好准备,因为 C++17 的许多特性是未来标准的基础。

本书的突出优点

1. 深度与结构。 作者不仅列举特性,还解释了为何引入这些特性、它们解决了哪些问题以及如何正确使用。每章都包含“常见陷阱”部分,这对实践开发者来说非常有价值。

2. 实践导向。

推荐