第十五章 C++17 重要特性
如果说 C++11 是一次对语言底层的“重构重生”,那么 C++17 则是一次对日常业务开发体验的“极效抛光”。
C++17 是在 C++11 之后最受欢迎的一版标准(目前已被绝大多数企业级项目作为主力编译标准)。它并没有引入多少颠覆底层理解的概念,而是引入了大量能让人在写代码时直呼“爽快”的语法糖,以及扩充了极其标准的实用库体系。
本章我们将领略 C++17 带来的这些极其甜美的特性:
- 结构化绑定:像 Python 一样优雅地拆包多重返回值。
- 三个现代化类型包装器:
optional(可能没有值)、variant(类型安全的联合体)与any(通吃任何类型)。 - if constexpr:在编译期就执行的分支截断,模板元编程的救星。
- std::filesystem:终于,C++ 拥有了官方标准、跨平台的文件系统和目录操作库!
- 折叠表达式:我们在第 11 章变参模板里惊鸿一瞥过的那个消灭递归的终极武器。
一旦用上了 C++17,你就再也回不去 C++11 的时代了。