Releases: Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP
Release list
v0.7.0:蓄势待发的一次版本更新
v0.7.0 (2026-06-25)
TAMCPP v0.7.0版本发布啦!本次更新主要有如下内容!
内容主线里程碑:卷三「标准库」全面成型、卷四补齐 GoF 设计模式系列、卷六补齐内存安全与 sanitizer 三部曲、卷五并发 Lab 重设计为 TDD 工程;平台层落地代码折叠与字号开关,部署链路切换为 GitHub Pages artifact 方式;英文翻译覆盖率达 100%。
卷三:标准库全面成型
按 v0.6.0 路线图「012 卷三全面重建」收尾。本轮把容器以外的标准库全部写完,并把扁平结构重组为 6 个子目录,每篇均带本机 GCC 16.1.1 真实终端输出,零 stub:
- containers/(13 篇) — v0.6.0 里程碑内容,本轮仅作目录迁移,确认完整无损坏。
- iterators-algorithms/(7 篇 40–46) — 迭代器适配器、STL 算法总览(上/下)、数值算法、ranges 与 C++23 新件(
fold/contains/新适配器)、并行算法(-ltbb、par/par_unseq编译命令)。 - strings/(6 篇) —
char8_t与 UTF-8、string_view、charconv、format、print、regex(按 C++20/23 标注支持度)。 - error-utils/(8 篇 61–68) —
optional、variant、any、expected(monadic 链 + 与异常的性能实测,频繁失败路径快近两个数量级)、functional、error_code、stacktrace、source_location。 - io/(3 篇 55–57) —
iostream(为何慢、怎么用才不慢)、fstream(RAII + 二进制可移植性)、filesystem(真实遍历/usr/include21173 条目 benchmark,冷热页缓存差 ~20×,directory_entry缓存 vs 自由函数重 stat 实测)。 - time-numeric/(3 篇 58–60) —
chrono(实测high_resolution_clock在 libstdc++ 是system_clock别名,纠正老资料说是steady_clock的说法;C++20 日历/时区/parse)、cmath(精度陷阱)、random(为什么别用rand)。
v0.6.0 changelog 标记的卷三待办基本清零;唯一留作可选深化项的是独立的「libc++ 源码阅读」专题——但多篇 deep-dive(vector/string/map/unordered_map/charconv/regex 等)已内嵌实现级源码分析,故该专题文章的缺失不等于内容缺失。
卷四:GoF 设计模式系列
从笔者旧博客迁移 21 篇 GoF 设计模式(01-singleton … 21-mediator),一次性补齐 vol4-generics-patterns 子区。按创造型(4)/结构型(7)/行为型(10)分组,统一走「朴素写法 → 逐步改进 → 终端实测验证 → 决策表 → 小结」骨架,是现代 C++ 写法而非朴素 OOP:
- Visitor 贴
-O2汇编看std::visit判别式分派 + 500 万次虚函数 vs variant 实测,带诚实的「variant 并不总是更快」caveat。 - Singleton 用 500 线程实测证 C++11 magic-statics 线程安全,对比 DCLP 的 acquire/release。
- Observer 用
weak_ptr防悬挂 + ASan 复现 use-after-free。
21 篇均有配套 CMake 工程(code/volumn_codes/vol4/design-patterns/),中英双语对齐。index 另标「规划中」的模板级模式(Policy-Based Design / CRTP / type erasure / Mixin 等)作为未来路线。
卷六:内存安全与 sanitizer
新增内存安全三部曲(#80,迁移自作者 *sans 笔记):
- ASan 家族(compile-time instrumentation / 1:8 影子内存 / quarantine)+ Heartbleed(CVE-2014-0160)越界读框架;五 sanitizer(ASan/LSan/MSan/TSan/UBSan)对比,ASan↔TSan 互斥用真实编译错误演示。
- Valgrind vs ASan——DBT/JIT(20–50× 慢、免重编译、memcheck A-bit/V-bit 双影子表)vs CTI(~2×、须重编译、影子内存)两条路线对比;五工具分解(memcheck/callgrind/cachegrind/helgrind+drd/massif),六种错误(uninit/UAF/OOB/leak/malloc-delete 错配/double-free)带 GCC 16.1.1 + valgrind 3.25.1 真实输出。
- sanitizer 工具链全景——用户态
-fsanitize=*↔ 内核 KASAN/KMSAN/UBSAN/KCSAN/KFENCE/DAMON(含合并版本),三层防御(开发期全插桩 / 预发布采样 / 生产轻量)。
卷五:并发 Lab 重设计
并发 Lab(#70)重设计为 TDD 工程:新增 code/volumn_codes/vol5-labs/(standalone FetchContent + Catch2 v3.7.1),templates/(空骨架,学习者拷贝去做)/ examples/(参考实现)双轨,每个 lab 独立可构建。
- Lab 0(线程生命周期) 完整:MS1–4 渐进测试 + TSan 友好的并发文件扫描器参考实现(递归收集 → 分片 →
JoiningThreadworker → 归约)。 - Lab 1(阻塞队列 / 并发缓存 / 同步原语) 模板与 MS1–6 测试就绪;参考实现标注「
⚠️ 正在开发中」,目前只有空声明,完成后作为对照。
两份 lab 手册(exercises/00-thread-lifecycle.md、01-bounded-queue.md)大改重写
卷八:领域归属整理
networking 子区内容下线(挪至 .claude/drafts/networking/ 待重写,gitignored),卷八回归嵌入式 / GUI / 存储 / 算法 / C++ 深入五个已成型子领域(中英 index 与全仓引用同步清理,零死链)。
平台与站点
- 长代码折叠(#72,对应 issue #71):构建期 markdown-it 插件,把超阈值行数的代码块整段包进原生
<details>——零 FOUC(静态即折叠态)、无 JS 原生可展开、打印友好;code-group内子块豁免。代码放在<details>外、纯 CSS:has(details[open])控展开。 - 字号开关(#69):正文五档缩放(超小 / 小 / 正常 / 大 / 超大),桌面 + 移动端导航均有,A-/A+ 步进,localStorage 持久化,首屏由
<head>内联脚本提前应用防闪烁。 - 部署链路优化(#78):
gh-pages分支部署 →actions/deploy-pagesartifact 部署。根治了 search 索引 chunk 每次构建换 hash 被 commit 进 gh-pages、致仓库膨胀至 437MB(86% 是.git)的问题;main 分支保持干净,站点已上线。 - 构建/校验基础设施:
tags.py抽为VALID_TAGS单一数据源(validate_frontmatter.py+check_quality.py共用),根治 vol4 设计模式迁移时两套白名单分叉导致 CI 挂的坑;本轮补全 GoF 设计模式 + 内存安全 + 调试/测试等新标签。- 新增
build_examples.py:host / STM32 分离 + CTest 支持,CI 接入,发现 113 个 host 工程。 translate.py两处加固:normalize_translated_title剥离 LLM 重新加回的<>(v-html 吃裸尖括号)+yaml.dump width防长标题折行被侧边栏截断。
内容修复
- 卷一 Cache 步长实验量纲错误(总耗时 → 每次访问耗时),#68 —— 源自 @Nyuudoukumo 的反馈 issue #67。
std::inplace_vector代码示例改进,#73,@YukunJ。std::is_trivially_copyable_v代码示例错误表述修正,#75,@YukunJ。std::pmr::vector仅用栈缓冲、不落堆的实测佐证,#77,@YukunJ。
翻译
- 英文全量对齐;卷六内存安全 3 篇补译,英文覆盖率 99% → 100%(494/494),所有卷全部双语对齐。
- README 状态表全量刷新:卷三 8→40 篇(翻为「✅ 成型」)、卷四 8→29 篇(标注含设计模式)、卷六 3→6 篇、卷八描述去掉已下线的「网络」;coverage 徽章由
coverage.py --update自动更新为 100%。
贡献者
Charliechen114514、YukunJ(代码与内容);
感谢反馈者 @Nyuudoukumo(issue #67 卷一 Cache 内容勘误,促成 #68 量纲修正)。已同步进 CONTRIBUTORS.md 与中英 team 页。
本版合并 PR #68–#80(#71/#74 为 issue,未计入)
贡献者 Charliechen114514、YukunJ,反馈者 Nyuudoukumo。
V0.6.0: TAMCPP稳定前进的一代——更进一步的C++内容扩写与网页极大的更新改善!
v0.6.0 (2026-06-16)
TAMCPP迎来V0.6.0时代!
内容主线里程碑:卷三「标准库」容器篇完工、迭代器篇起步,卷八「嵌入式」做了一次系统性的内容刷新与归属重组,卷十新增两个 CppCon 2025 笔记系列;平台层完成了站点视觉重做与 Agent 协作接入,并把学习路线图中英双语重写。
- 优化的门面!
- 更加良好的代码交互!
- 以及更多新篇章!
点击我直接访问,获得更好的阅读体验!
卷三:标准库重建推进
按 v0.5.0 路线图「012 卷三全面重建」继续推进,本轮新增 15 篇正文,覆盖第一部分(容器)完工与第二部分(迭代器)起步:
第一部分「容器与内存」完工(14 篇,均含可运行代码,核心章节附真实终端实测)
- 选型与基础 — 容器选择指南(按操作/内存/失效规则挑容器)、
std::array、std::initializer_list、对象大小/对齐/平凡类型 - 顺序容器深入 —
vector(三指针/扩容/迭代器失效)、string(SSO/COW/resize_and_overwrite)、deque/list/forward_list - 关联容器 —
map/set(红黑树/异构查找/节点句柄)、unordered_map/unordered_set(哈希表/桶/自定义 hash) - 视图与适配器 —
std::span、容器适配器(stack/queue/priority_queue 的包装机制) - 新标准容器 —
flat_map、inplace_vector、mdspan(按 C++23/26 编译器支持度标注) - 内存 — 自定义分配器与 PMR
- 字符与编码 —
char8_t与 UTF-8 字符串
第二部分「迭代器/算法」起步(1 篇)
- 迭代器基础与 category:容器和算法靠什么对接
同时执行了 v0.5.0 规划的归属迁移:把 type-safe register、circular buffer、intrusive containers 三篇非标准库内容迁出至卷八,让卷三回归「标准库」本位。卷三第二部分余下文章(STL 算法、ranges 进阶等)与第三部分(通用设施/libc++ 源码阅读)仍待后续推进。
卷八:嵌入式内容刷新与重组
嵌入式卷在 v0.5.0 已有完整骨架(环境搭建、LED、Button、UART 整条 hands-on 链),本轮做的是系统性内容刷新 + 归属重组,而非从零起步:
- 对环境搭建、LED、Button、UART 等章节做了内容修订与统一
- 接收卷三迁入的 type-safe register / circular buffer / intrusive containers 三篇
- 把 Empty Base Optimization 迁出至卷四(归属更贴「高级主题」)
- 新增各章节 landing 索引页,删除已过时的
array-vs-raw-arrays
卷十:CppCon 2025 笔记扩展
新增两个 Back to Basics 系列(各 3 篇正文 + 导读):
- Back to Basics: Ranges — 从循环到迭代器、STL 算法与迭代器陷阱、ranges views 与组合
- Back to Basics: Move Semantics — 拷贝代价与动机、值类别与引用、移动操作/
std::move/拷贝消除
卷四:高级
从卷八迁入 Empty Base Optimization 一文(归属调整)。
Agent 协作接入
让仓库对 AI 编程助手(Claude Code 等)开箱即用,建立跨 agent 的统一入口与协作约定:
- 新增 AGENTS.md 跨 agent 入口与 CLAUDE.md,沉淀项目级指令
- 开放
.claude/协作设施:patch/minor/new-article/audit/preflight/verify-claim/explain等命令、写作风格与文档 frontmatter 规则、文章事实核查与严谨度审查 prompt、bare-python 拦截钩子 - 新增
.github/faq.md与.github/learning-with-agents.md,面向读者与贡献者说明如何借助 agent 学习与协作
站点视觉重做
首页与内容呈现层做了一次成体系的视觉刷新:
- 新增
HomeHeroVisual、HomeRoadmap首页可视化组件 - 新增
ProofStrip(实验证据条)、ScreenshotCarousel(截图轮播)组件 - 重做
OnlineCompilerDemo在线编译演示 - 引入 shiki 语法高亮、新增 build-info 注入
- 配套移动端阅读修复与整体样式调整
- 优化了一下顶部栏,嗯,看着不拥挤了!
学习路线图重写
中英双语重写 documents/roadmap/index.md,按稳定信号(主题/难度/前置/平台/成熟度)组织,不堆砌篇数与统计。
社区与协作
新增社区/dev 迭代节奏文档与社区入口页,沉淀 patch/minor 迭代约定。
内容修复
翻译
- 同步本版本全部中文内容变更至英文,并对多个卷的英文文档做了批量同步校对
贡献者
Charliechen114514、YukunJ
内容数据
| 指标 | 数量 |
|---|---|
| 文件变更 | 834 files(+30,566 / -19,870) |
| 提交数 | 15 |
| 合并 PR | #45–#64(共 12 个) |
| 贡献者 | Charliechen114514、YukunJ |
V0.5.0: TAMCPP规划todo完善完毕;热烈欢迎新的贡献者!;社区体系建设;多个章节的内容勘误修正。
v0.5.0 (2026-06-10)
社区体系建设:社区来稿系统、结构化 Issue 模板、贡献指南大幅扩展,以及多个章节的内容勘误修正。
TODO 体系大幅度重构
将原先分散的约 30 个 TODO 文件整合为结构化的卷级路线图,统一编号、优先级和分类体系:
000项目总路线图 — 全局入口,将约 30 个分散旧 TODO 整合为 15 个结构化路线图。统一按 P0–P3 划分优先级,明确跨卷依赖、边界划分与验收标准。所有 C++26 前瞻内容须标注needs standard-status verification010卷一:基础入门 — C 速成到 STL 入门已完整覆盖。近期维护重点:在关键章节末尾添加跨卷前向导航、将教学用的// TODO:标记重命名为// 练习:、清理已被取代的遗留代码文件。原则是不新增主要话题,专注降低读者阅读摩擦011卷二:现代 C++ 特性 — 移动语义到 UDL 全部完成,英文翻译 100%。主要缺口:ch00 全部文章缺少参考资料节、RVO 文章缺少 C++17 Guaranteed Copy Elision 章节、部分文章 frontmatter 标注的标准版本不准确。同时计划将 consteval/constinit 迁移至卷四,并为核心文章补充练习题012卷三:标准库 — 需要全面重建。将 type-safe register、circular buffer、intrusive containers、ETL 等非标准库内容迁移至卷八,保留 5 篇现有文章。四部分重建计划覆盖数据结构与容器、迭代器与算法、通用设施(字符串/IO/时间/工具/语言支持)、libc++ 源码阅读,目标是从零散主题重建为完整章节体系013卷四:高级主题 — 仅 7 篇有实质内容,旧骨架全部废弃重写。三大增量工程:模板编程系列(从基础到前沿,含综合项目)、Modules 深入(原理/接口单元/标准库模块/迁移策略)、Ranges 进阶(概念层次/性能分析/C++23 新特性)。另规划 C++23/26 前沿特性文章按编译器支持度分级推进。协程文章将从博客风格重写为教程风格014卷五:并发编程 — P0 最高优先级。文章层面已覆盖 ch00-ch09 全部主题,但代码覆盖缺口严重——ch05 的 async/promise/threadpool 和 ch06 的事件循环、协程 echo server 均缺少配套代码。维护阶段优先补齐代码、建立文章-代码双向映射、搭建 Capstone 工程骨架。增量阶段规划 Hazard Pointer、Epoch-Based Reclamation、Structured Concurrency、Sender/Receiver 等前沿内容015卷六:性能优化 — 现有文章极度薄弱,需要从零重建。重建路径:性能工程思维 → 基准测试方法与工具 → 编译器优化深入 → 汇编阅读与 perf/Valgrind → 缓存友好布局与内存对齐 → 分支预测与无分支编程 → SIMD/AVX 实践 → 综合评估。核心设计原则:每篇文章必须回答"如何测量"和"不能得出什么结论"016卷七:工程实践 — 从现有 9 篇扩展为完整的工程实践体系。六大章节:CMake 深入(Presets/FetchContent/Unity/ccache/交叉编译)、Catch2 测试体系(参数化/Mock/覆盖率)、代码质量(clang-tidy/Sanitizer/clang-format)、调试(GDB/LLDB/远程调试/rr)、包管理(FetchContent/vcpkg/Conan 对比)、CI/CD 与发布(以本仓库自身工作流为案例)。CMake 最低版本要求 3.28+017卷八:领域应用 — 规划 9 个子领域并行发展。嵌入式开发最强,STM32F1 外设链路(SPI/I2C/Timer/ADC/DMA)分五期推进至 RTOS 和综合项目。其他领域包括设计模式、网络编程、C++ 语义分析(值类别/对象模型/UB 深入)、序列化与持久化、GUI/图形、工程算法、系统编程,各领域均设有独立路线图018卷九:开源项目学习 — 现有 OnceCallback 完整教学路径。三批次增量路线:近期添加源码阅读方法论导论、Chrome WeakPtr/指针安全主线、spdlog 主线;中期推进 Chrome TaskRunner/线程池主线、moodycamel ConcurrentQueue、fmtlib;远期扩展至 ETL、ankerl::unordered_dense、Asio 等。每个项目遵循 full(完整教学)+ hands_on(设计导向快速路径)双轨模型019课程与演讲笔记(卷十) — 已完成 Bjarne Stroustrup "Concept-Based Generic Programming" 和 Matt Godbolt "Some Assembly Required" 两个系列,配套定制 Vue 组件。候选池包括 CppCon 2025/2024 多位演讲者的优质内容,选取标准要求与现代 C++ 工程强相关且具备可运行示例020贯穿式实战项目 — 第一期规划三个项目卡片:Mini Concurrent Runtime(依赖卷五)、General CLI Framework(依赖卷八嵌入式)、Mini STL Components(可立即启动,依赖卷三)。第二期候选包括 Mini HTTP Server、Mini GUI Framework、嵌入式 OS、IoT Gateway030社区建设 — ✅ done。已建立 Issue 模板体系(内容勘误/内容提案/构建问题/站点问题),CONTRIBUTING.md 中 Issue/Discussion/PR 分工规则就绪,QA 提交流程与031已互链。PR 不设固定模板,鼓励自由提交031QA 与知识库 — 依赖030完成。规划 FAQ 板块覆盖学习路线图、编译链接常见错误、指针/生命周期/并发常见误解、嵌入式 C++ 工程权衡。QA 索引连接 StackOverflow、知乎、WG21 论文、cppreference 和项目 Discussion 精华,建立 Discussion 到文档的流转闭环
后续各卷内容建设将按此路线图有序推进。
社区体系
社区来稿系统(#40)
新增 documents/community/ 社区文章区,建立完整的投稿流转路径:
- 社区来稿初刊 (
community/incoming/) — 通过基础检查后即可上线的投稿区 - 已审阅收录 (
community/articles/) — 经讨论、修订和维护者审阅后长期收录的文章 - 支持投稿 → 初刊 → 审阅收录 → 主线教程的完整流转
- 投稿者只需提交 Markdown 正文,不必一开始理解完整站点结构
GitHub Issue 模板(#40)
新增 4 个结构化 Issue 模板,引导社区反馈:
- 内容勘误 — 报告错别字、概念错误、术语不准确、代码讲解问题
- 内容提案 — 建议新增文章、专题、源码阅读笔记、投稿主题
- 示例代码或构建问题 — 代码编译、CMake 配置、工具链兼容、CI 构建失败
- 站点问题 — 404、搜索异常、移动端排版、导航问题
新增 config.yml,关闭空白 Issue,引导学习问题到 Discussions。
CONTRIBUTING.md 大幅扩展(#40)
- 新增「自定义 Vue 组件」文档(ChapterNav、ReferenceCard、TalkInfoCard 等组件的用法和 Props 说明)
- 新增「社区来稿」投稿指南和流转说明
- 新增「社区协作规则」— Issue / Discussion / PR 分工
- 新增「QA 与知识库规则」— 外部内容收录规范
- 新增「质量、翻译与发布」— 翻译维护规则和版本发布规则(patch / minor / major 判定标准)
贡献方向指引(#40)
新增 todo/030-community.md 和 todo/031-qa-knowledge-base.md,规划社区文章和 QA 知识库的发展方向。
内容修复
- shared_ptr 章节 — 修正「enabled shared from this」段落的拼写错误(#32,@YukunJ)
- variant 章节 — 修正
int大小说明(主流平台为 4 字节),更新 variant 尺寸分析(#33,@YukunJ) - no_unique_address 章节 — 修正错误的技术描述(#38,@YukunJ)
- 代码示例 — 补全代码片段中缺失的一行(#39,@YukunJ)
- modern attributes 章节 — 修正内容与翻译同步更新(#37)
贡献者
基础设施
- 构建缓存优化 — 更新
scripts/build.ts缓存逻辑,使 PR 构建检查更可靠高效(#36) - TODO 体系重构 — 将分散的旧 TODO 文件整合为卷级路线图(
000-project-roadmap.md+010–020卷级规划),删除约 30 个旧文件 - Frontmatter 校验 — 更新
validate_frontmatter.py校验规则(#36) - 站点样式 — 新增
site/.vitepress/theme/custom.css社区卡片样式(#40)
翻译
- 同步更新英文版文档,覆盖本版本所有中文内容变更(#37)
v0.4.0, Great Update of Surfing Site; v0.4.0——站内浏览的提升版本
v0.4.0 (2026-05-26)
第三次功能版本更新:英文站点完整落地、Compiler Explorer 交互代码集成、Mermaid/DrawIO 图表渲染、指针语义深度示例,以及仓库瘦身清理。
新增内容
英文站点完整落地
英文翻译从零散状态升级为完整可用站点,覆盖所有核心卷:
- Compilation 卷:10 篇 + index,静态/动态库、符号可见性、运行时加载全量翻译
- C++ Reference:concurrency(4 篇)、containers(10 篇)、core-language(18 篇)、memory(5 篇)、templates(3 篇)及各 index
- Vol.1 Fundamentals:preface、C 语言速成、C++98 系列(6 篇)、语言选型等
- Vol.2 Modern Features:多篇现代特性文章翻译
- 站点页面:404 页、appendix/terminology、team、tags、projects、index
Compiler Explorer 交互代码集成(#24)
新增 code/examples/compiler_explorer/,支持在线修改编译条件并实时查看汇编输出:
- 14 个示例,覆盖 ARM / Host 双平台
- 主题包括:
arrayvs C 数组、constexpr、EBO、placement new、静态多态、结构体对齐、编译器选项、GPIO 零开销抽象等
指针语义深度示例(#28)
新增 code/examples/cpp-deep-dives/pointer-semantics/,从零实现并测试多种指针语义类型:
borrowed_ptr、observer_ptr:借用与观察语义weak_ptr、simple_weak_ptr、unsafe_weak_ptr:弱引用与生命周期验证weak_flag、weak_ptr_factory:配套设施- 含完整 CMakeLists.txt 及 4 组单元测试
并发练习手册(#31)
- 新增
vol5-concurrency/exercises/index.md,中英文双语同步上线
Vol.4 模板编程索引重构
- 清理草稿文章后,新增
vol4-advanced/vol2-modern-cpp17/index.md作为模板编程入口
站点增强
Mermaid 图表渲染(#28)
- 新增
site/.vitepress/plugins/mermaid-plugin.ts构建时插件 - 新增
site/.vitepress/theme/mermaid-client.ts客户端运行时 - Markdown 内 Mermaid 代码块可在站点中直接渲染
DrawIO 图表渲染(#30)
- 新增
site/.vitepress/theme/custom.css(+353 行),支持 DrawIO 嵌入样式 - 部分原有 Mermaid 图表迁移为 DrawIO 渲染
仓库清理
草稿与模板删除
- 删除
documents/vol4-advanced/下 5 篇未完成草稿(-3,300 行):template-overview、function-templates、class-templates、if-constexpr、cpp-templates-index - 删除
.templates/目录(article / platform-tutorial / reference-card / todo 模板) - 删除
.githooks/pre-commit(迁移至 pre-commit)
TODO 瘦身
- 清理 todo 目录 46 个文件(-6,160 行),移除已归档和过时条目
工程改进
- Hooks 迁移至
.pre-commit-config.yaml,统一使用 pre-commit 框架 - 更新
scripts/setup_precommit.sh适配新 hook 配置 scripts/build.ts:适配 Mermaid 插件集成scripts/check_links.py:增强链接可达性检查scripts/validate_frontmatter.py:校验规则更新scripts/cppref_card_generator.py:卡片生成器适配- 修复 CI 脚本错误(#30)
- 修复文档 404 URL(#26)
- 中文文章批量添加 Compiler Explorer 交互链接(vol1 多章、vol3、vol7)
v0.3.0 更多关键的教程!卷五(并发编程)全面重写、卷十(课程与演讲笔记)正式上线、贡献者体系建立,以及多项工程改进
v0.3.0 (2026-05-20)
卷五(并发编程)全面重写、卷十(课程与演讲笔记)正式上线、贡献者体系建立,以及多项工程改进。
新增内容
卷五:并发编程(全面重写,47 篇文章)
从零重写并发编程卷,覆盖从线程基础到分布式桥接的完整知识链:
- ch00 并发基础概念:并发与并行、硬件与软件线程、Amdahl 定律与 Gustafson 定律
- ch01 线程生命周期与 RAII:
std::thread、jthread、线程参数传递、detached 线程 - ch02 互斥量与条件变量同步:mutex 族、lock_guard / unique_lock / scoped_lock、条件变量模式
- ch03 原子操作与内存模型:
std::atomic、六种 memory order、SeqCst 到 Relaxed 的完整推导 - ch04 并发数据结构:线程安全队列、环形缓冲区、读写锁、无锁栈与 MS 队列
- ch05 Future、Task 与线程池:
std::future/std::packaged_task、可伸缩线程池设计 - ch06 异步 I/O 与协程:epoll/kqueue/io_uring 概览、C++20 协程、协程调度器
- ch07 Actor 与 Channel 模式:Actor 模型、CSP Channel、模式对比与选型
- ch08 调试、测试与性能分析:TSan / Helgrind、并发测试策略、性能剖析
- ch09 分布式桥接:网络序列化、gRPC 概览、分布式一致性基础
卷十:课程与演讲笔记(新增)
- CppCon 2025 笔记:
- Concept-Based Generic Programming — concepts 实战研读
- Some Assembly Required — 编译器后端与代码生成
贡献者体系
- 新增
CONTRIBUTORS.md,记录所有贡献者 - 文档站增加贡献者卡片页(中文 / 英文)
- README 同步展示贡献者列表
工程改进
- 修复搜索索引中中英文混合结果的排序问题(#20)
- 修复编译卷 404 错误
- 修复搜索功能崩溃问题(#22)
- Hook 优化:改进 404 检查逻辑
- 增强 CI 导航链接可达性检查(#10)
- Vol.1 基础类型章节内容修正(#15, #16)
文档与站点
- Vol.1
01-basic-types.md误导性内容修正 - 全站英文翻译保持 100% 覆盖
内容数据
| 指标 | 数量 |
|---|---|
| 文章总数(中文) | 411 篇 |
| 英文翻译 | 410/410(100%) |
| 卷五文章数 | 47 篇 |
| 新增卷 | 卷十:课程与演讲笔记 |
| 支持平台 | host / STM32F1 |
V0.2.0, Volumn 9 for Open Source Code Framework Ready
What's New
Vol9 开源项目阅读:Chrome OnceCallback
新增完整教程,以 Chromium 的 OnceCallback 为案例,系统讲解如何阅读和理解工业级 C++ 代码。
- 前置知识(6 篇):函数类型特化、invoke、lambda 进阶、concepts、move_only_function、deducing this
- 正文(6 篇):动机与 API 设计、核心骨架、Bind Once、Cancellation Token、Then 链式调用、测试与性能
- 实战(3 篇):设计、实现、测试
其他卷的内容仍然正在建设,请等待新的提交!
代码示例
- OnceCallback 完整实现 + Catch2 测试
- 11 个独立知识点示例,按 C++17/20/23 分级编译
CI Improvements
- 升级 GCC 14,支持 C++23 deducing this
- 引入 ccache + actions/cache 加速构建
V0.1.0, First Releases for Utils C++
v0.1.0 (2026-04-29)
这里是Tutorial_AwesomeModernCPP的首个发行版本,涵盖 Modern C++ 核心基础与嵌入式入门。
已完成内容
卷一:C++ 基础入门(全部已经完成)
- 完整的 C 语言速通教程
- C++ 类型系统、控制流、函数、指针、类、模板初步
- 70+ 篇文章
卷二:现代 C++ 特性(全部已经完成)
- RAII 与资源管理
- 移动语义与右值引用
- 智能指针(unique_ptr / shared_ptr / weak_ptr)
- constexpr 与编译期计算
- Lambda 表达式
- 57 篇文章
编译与链接深入
- 预处理、汇编、链接、调试符号
- 静态/动态库、符号可见性
- 10 篇文章
卷八:领域应用 — 嵌入式开发
- STM32F1 部分平台教程已经展开执行,目前完成的部分是LED和按钮!
- 外设管理、寄存器访问、交叉编译
- 48 篇文章
内容数据
| 指标 | 数量 |
|---|---|
| 文章总数 | ~185 篇 |
| C++ 代码示例 | 344 个 |
| C 代码示例 | 576 个 |
| CMake 构建项目 | 116 个 |
| 支持平台 | host / STM32F1 / ESP32 / RP2040 |
如下这些特性是正在开发中!
如果您对这些内容有所见解,欢迎到拉PR到本项目中,贡献您对这些主题的见解,或者是修定任何您对已有文章发现的错误!
- 卷三:标准库深入
- 卷四:高级主题
- 卷五:并发编程
- 卷六:性能优化
- 卷七:软件工程实践
- 卷八其余领域:网络编程、GUI、算法、数据存储
- 贯穿式实战项目