Appearance
C++ 现代特性(C++11/14/17/20)专题
一句话总览
C++ 面试的「新特性部分」≈ auto、右值引用 + 移动语义 + 完美转发、lambda、智能指针、constexpr、delete/default、range-for、结构化绑定、std::optional/variant/any。底层推导与原理是追问重点。
问题清单
- 说一下了解哪些 C++11 新特性?(面试暖场常问,需能列 8~10 个)
- 左值 vs 右值?左值引用 vs 右值引用?
- 什么是移动语义?为什么要 move?与拷贝的区别?
std::move做了什么事?它是真的「搬」吗?- 完美转发 与 引用折叠规则(forwarding reference/&& 推断)?
- auto 推导规则(auto 剥引用/const,decltype 保留)?
- lambda 本质是什么?捕获方式的差异(按值/按引用/mutable/捕获 this)?
- constexpr vs const vs 普通函数?
- default/delete 的作用?
- nullptr 相比 NULL 优势?
- range-for / 结构化绑定 / if-init / using 别名 / enum class?
- C++17/20 新增了解哪些(fold 表达式、concepts、coroutine…)?
子文档
| 文件 | 内容 |
|---|---|
index.md | 本总览 |
move-semantics.md | 左右值、移动语义、完美转发、引用折叠 |
lambda-auto.md | lambda、auto 推导 |
features-cpp11.md | C++11~20 特性清单 + constexpr/default/delete/nullptr |
ranges.md | C++20 ranges:view 管道、投影、惰性 |
views-format.md | string_view/span/format/<=>/module |
coroutine:见 concurrency/coroutine.md | |
模板元编程:见 metaprogramming/ |