Skip to content

Commit 1c5c860

Browse files
release: v0.9.0
1 parent e90317f commit 1c5c860

1 file changed

Lines changed: 75 additions & 0 deletions

File tree

changelogs/v0.9.0.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# v0.9.0 (2026-07-23)
2+
3+
这一版是 v0.8.0 之后攒下来的全部,中间那个 v0.8.1 patch(`std::sort` 的一处小修)没单独发 release,内容并到这里。主线有三条:卷四的模板编程铺开了两个子卷、卷二的移动语义和智能指针两个子卷做了实测重写、卷十接上一篇 CppCon 2025 的 `std::optional` 笔记。社区这头也热闹,owollz4 把 C 语言系统教程各章的练习参考答案从第二章一路补到了第十一章。
4+
5+
## 卷四:模板编程铺开两个子卷(#123 + #124)
6+
7+
卷四之前是几篇零散文章(协程、EBO、spaceship、modules)平铺在根目录,这一版按标准版本拆成子卷骨架,先把内容最厚的两个子卷填了进去。
8+
9+
### vol1-basics-cpp11-14:模板基础十篇(#123)
10+
11+
从模板是什么一路讲到 CRTP 和 fixed_vector,十篇正文配英文全套,加四个独立示例(`comparable_mixin` / `crtp_static_polymorphism` / `fixed_vector` / `type_traits_from_scratch`)。覆盖函数模板、类模板、全特化与偏特化、非类型参数、名字查找与 ADL、Barton-Nackman 技巧、别名 using,最后用 CRTP 落到一个固定容量 vector 上。
12+
13+
### vol3-metaprogramming-cpp20-23:concepts 三连(#124)
14+
15+
C++20 的 concepts 子卷开了前三篇:Concepts 详解(四种语法形式、和 `enable_if` 的报错对比、标准库概念)、约束模板(subsumption 与重载、原子约束的真包含关系)、requires 表达式(四种成分、不求值语境、硬错误坑)。配九个示例,报错演示用 `-D` 宏切换。
16+
17+
## 卷二:移动语义与智能指针实测重写(#105 + #115 + #124)
18+
19+
ch00 移动语义和 ch01 智能指针两个子卷整章过了一遍。这次的重点是实测:把原文里和 GCC 16 实测对不上的地方挑出来重写,文字润色是顺带的。
20+
21+
ch00 移动语义(#105 + #124):右值引用和移动语义两篇先做了第一轮补例(#105),随后 #124 把 benchmark 数据的硬伤修了——原文写「285ms / 快 3 倍」,和实测对不上,重跑后按真实数据重写;`noexcept` 那段原本缺 `ThrowingType`,代码和输出对不上,补全了;顺手清掉一个空目录死链,加了两个在线编译演示(`push_back_emplace``noexcept_sort_vs_realloc`)。
22+
23+
ch01 智能指针六篇(#124):人称统一(笔者/咱们/您)、删掉「## 小结」换成承接、清 AI 味词、工具链统一到 GCC 16。实测硬伤修了一批:
24+
25+
- `raii-deep-dive`:exit 验证段缺 `main`,给了输出却链接不过。
26+
- `unique-ptr`:`sizeof` 代码里缺 `StatefulDeleter`,但输出里有;另有 5 处死链和一个 PIMPL 死链。
27+
- `weak-ptr`:`lock()` 实测比直接访问慢约 32 倍,原文写 10–15 倍,把直接访问的耗时写高了。
28+
- `custom-deleter`:11 处死链、末尾整段「## 验证代码」死链,外加 535–536 两行重复。
29+
- `scope-guard`:验证段死链。
30+
31+
新增三个示例(`noexcept_sort_vs_realloc.cpp` / `move_benchmark.cpp` / `push_back_emplace.cpp`),都过 GCC 16 编译。英文同步了 ch00/05 和 ch01 的 01–04。
32+
33+
## 卷十:CppCon 2025 std::optional 六篇(#124)
34+
35+
Steve Downey 在 CppCon 2025 的《The Evolution of std::optional: From Boost to C++26》拆成六篇深度笔记,主线是 `optional<T&>`(P2988)从 2005 年提出、到 2025 年 Sofia 会议投票通过进 C++26 的二十年历程。讲清楚了几路争议:三重身份、assign-through 和 rebind 之争、赋值重绑定、浅层 const、移动语义的坑,以及 The Beman Project 在标准化里到底扮演什么角色。所有 `optional<T&>` 代码在 GCC 16.1.1 `-std=c++26` 实跑,附赋值汇编。写作时顺手修正了原始素材里的 CTAD 误断和 Beman 拼写,接进了 2025 目录页。
36+
37+
## C 语言系统教程:练习参考答案补齐(社区来稿)
38+
39+
这一版收到社区贡献者 [owollz4](https://github.com/owollz4) 的一整批来稿,把 C 语言系统教程([`documents/vol1-fundamentals/c_tutorials/`](documents/vol1-fundamentals/c_tutorials/))各章的练习题参考答案补齐,从第二章的数据类型与溢出,一路写到第十一章的预处理。覆盖范围:
40+
41+
- 第二、三章:数据类型、整型溢出、运算符、位运算的练习答案(#108)。
42+
- 第四、五章:控制流相关练习(#114)。
43+
- 第六、七章:作用域与存储类别、指针基础(#117)。指针那章的答案额外过了一遍 `-Wall -Wextra -std=c17`,把 `%d``%zu``%p``(void*)` 强转等触发警告的地方都修了。
44+
- 第八章:作用域与存储类别的练习(#121)。
45+
- 第十、十一章:结构体与联合、预处理(#125)。
46+
47+
另外 #104 给第六章的状态机示例代码补了一轮注释,把「几个负载」改成更贴代码的「几个字节」、`kStateHeader` 修正为「帧头已收完,接下来等长度字节」。笔者这边配合做了一轮 review,修了来稿代码里几处可能 segfault 和隐式声明的问题。
48+
49+
## 卷一:基础卷若干文章修正(#107 + #111 + #118)
50+
51+
- 浮点那篇重写了(#107):`c_tutorials/02B-float-char-const-cast` 的解释和示例都更新了,新增 `c_float_representation` 示例(中英各一份),把浮点表示讲得更清楚。
52+
- 函数模板修正(#111):`ch09/01-function-templates` 里几处误导性表述重写了,中英同步。
53+
- `std::sort` 小修(#118,issue #116):`ch11/03-algorithms-intro` 一处描述,两行。这个就是 v0.8.1 patch 的内容。
54+
55+
## 站点:mermaid 图支持缩放和全屏(#119)
56+
57+
之前 mermaid 图只能看原尺寸,想看清细节得眯着眼。这一版接了 `@panzoom/panzoom`:内联挂一个 maximize 按钮(用 `ResizeObserver` 判断溢出,不溢出的图不显示按钮),点开进全屏模态,支持滚轮缩放和拖拽。模态走 `Teleport` 范式,clone 一份 SVG 出来挂 panzoom,不动原文档。新增 [`MermaidLightbox.vue`](site/.vitepress/theme/components/MermaidLightbox.vue)(213 行)、`mermaid-lightbox.ts`,样式进 `custom.css`
58+
59+
## 工程改进
60+
61+
- **cpp-reference 速查卡新增两张**(#100):容器类补了 [`std::mdspan`](documents/cpp-reference/containers/11-mdspan.md)(C++23 多维数组视图),核心语言类补了 [`std::stacktrace`](documents/cpp-reference/core-language/19-stacktrace.md)(C++23 调用栈捕获)。roadmap 页也跟着调了一下。
62+
- **c_tutorials 示例代码重组**(#126):[`code/volumn_codes/vol1/c_tutorials/`](code/volumn_codes/vol1/c_tutorials/) 下的 C 示例重新整理了一遍,把零散的示例合并、统一命名(比如 `ex1_float_precision``ex1_float_epsilon``ex1_bit_toolkit``ex1_bit_ops`),删掉冗余的,净减约 40 个文件。顺手补了 pre-commit 钩子配置。
63+
64+
## 翻译
65+
66+
跟着内容主线走:卷四两个新子卷(vol1-basics 全套、vol3-metaprogramming concepts 三篇)英文上线,卷二 ch00/05 移动语义和 ch01 智能指针 01–04 英文同步,卷十 `std::optional` 六篇中英对齐。卷一的函数模板(#111)和浮点(#107)修正也带上了英文。
67+
68+
[点这里直接访问站点](https://awesome-embedded-learning-studio.github.io/Tutorial_AwesomeModernCPP/)
69+
70+
## 感谢新贡献者
71+
72+
感谢这几位朋友!
73+
74+
- [owollz4](https://github.com/owollz4):把 C 语言系统教程第二到十一章的练习参考答案补了一遍,外加第六章状态机代码的注释。这一版来稿最厚的一批。
75+
- [Zch0](https://github.com/Zch0):指出函数模板一章「模板特化与重载混合使用不会产生二义性」的表述问题(#109),促成了 #111 的重写。

0 commit comments

Comments
 (0)