Skip to content

Releases: Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP

v0.7.0:蓄势待发的一次版本更新

Choose a tag to compare

@Charliechen114514 Charliechen114514 released this 25 Jun 14:28
95e8a57

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/新适配器)、并行算法(-ltbbpar / par_unseq 编译命令)。
  • strings/(6 篇)char8_t 与 UTF-8、string_viewcharconvformatprintregex(按 C++20/23 标注支持度)。
  • error-utils/(8 篇 61–68)optionalvariantanyexpected(monadic 链 + 与异常的性能实测,频繁失败路径快近两个数量级)、functionalerror_codestacktracesource_location
  • io/(3 篇 55–57)iostream(为何慢、怎么用才不慢)、fstream(RAII + 二进制可移植性)、filesystem(真实遍历 /usr/include 21173 条目 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。
  • Observerweak_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 友好的并发文件扫描器参考实现(递归收集 → 分片 → JoiningThread worker → 归约)。
  • Lab 1(阻塞队列 / 并发缓存 / 同步原语) 模板与 MS1–6 测试就绪;参考实现标注「⚠️ 正在开发中」,目前只有空声明,完成后作为对照。

两份 lab 手册(exercises/00-thread-lifecycle.md01-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-pages artifact 部署。根治了 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++内容扩写与网页极大的更新改善!

Choose a tag to compare

@Charliechen114514 Charliechen114514 released this 16 Jun 11:40

v0.6.0 (2026-06-16)

TAMCPP迎来V0.6.0时代!

内容主线里程碑:卷三「标准库」容器篇完工、迭代器篇起步,卷八「嵌入式」做了一次系统性的内容刷新与归属重组,卷十新增两个 CppCon 2025 笔记系列;平台层完成了站点视觉重做与 Agent 协作接入,并把学习路线图中英双语重写。

  • 优化的门面!
image
  • 更加良好的代码交互!
image
  • 以及更多新篇章!
image image

点击我直接访问,获得更好的阅读体验!

卷三:标准库重建推进

按 v0.5.0 路线图「012 卷三全面重建」继续推进,本轮新增 15 篇正文,覆盖第一部分(容器)完工与第二部分(迭代器)起步:

第一部分「容器与内存」完工(14 篇,均含可运行代码,核心章节附真实终端实测)

  • 选型与基础 — 容器选择指南(按操作/内存/失效规则挑容器)、std::arraystd::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_mapinplace_vectormdspan(按 C++23/26 编译器支持度标注)
  • 内存 — 自定义分配器与 PMR
  • 字符与编码char8_t 与 UTF-8 字符串

第二部分「迭代器/算法」起步(1 篇)

  • 迭代器基础与 category:容器和算法靠什么对接

同时执行了 v0.5.0 规划的归属迁移:把 type-safe registercircular bufferintrusive 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 学习与协作

站点视觉重做

首页与内容呈现层做了一次成体系的视觉刷新:

  • 新增 HomeHeroVisualHomeRoadmap 首页可视化组件
  • 新增 ProofStrip(实验证据条)、ScreenshotCarousel(截图轮播)组件
  • 重做 OnlineCompilerDemo 在线编译演示
  • 引入 shiki 语法高亮、新增 build-info 注入
  • 配套移动端阅读修复与整体样式调整
  • 优化了一下顶部栏,嗯,看着不拥挤了!

学习路线图重写

中英双语重写 documents/roadmap/index.md,按稳定信号(主题/难度/前置/平台/成熟度)组织,不堆砌篇数与统计。

社区与协作

新增社区/dev 迭代节奏文档与社区入口页,沉淀 patch/minor 迭代约定。

内容修复

  • filesystem 代码示例细节修正(#45@YukunJ
  • 修复 filesystem 原子操作章节的错误注释(#46@YukunJ

翻译

  • 同步本版本全部中文内容变更至英文,并对多个卷的英文文档做了批量同步校对

贡献者

Charliechen114514、YukunJ

内容数据

指标 数量
文件变更 834 files(+30,566 / -19,870)
提交数 15
合并 PR #45#64(共 12 个)
贡献者 Charliechen114514、YukunJ

V0.5.0: TAMCPP规划todo完善完毕;热烈欢迎新的贡献者!;社区体系建设;多个章节的内容勘误修正。

Choose a tag to compare

@Charliechen114514 Charliechen114514 released this 10 Jun 12:08

v0.5.0 (2026-06-10)

社区体系建设:社区来稿系统、结构化 Issue 模板、贡献指南大幅扩展,以及多个章节的内容勘误修正。

TODO 体系大幅度重构

将原先分散的约 30 个 TODO 文件整合为结构化的卷级路线图,统一编号、优先级和分类体系:

  • 000 项目总路线图 — 全局入口,将约 30 个分散旧 TODO 整合为 15 个结构化路线图。统一按 P0–P3 划分优先级,明确跨卷依赖、边界划分与验收标准。所有 C++26 前瞻内容须标注 needs standard-status verification
  • 010 卷一:基础入门 — 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 Gateway
  • 030 社区建设 — ✅ done。已建立 Issue 模板体系(内容勘误/内容提案/构建问题/站点问题),CONTRIBUTING.md 中 Issue/Discussion/PR 分工规则就绪,QA 提交流程与 031 已互链。PR 不设固定模板,鼓励自由提交
  • 031 QA 与知识库 — 依赖 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.mdtodo/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

贡献者

  • 欢迎新贡献者 YukunJ 🎉 — 修复 shared_ptr、variant、no_unique_address 等多个章节的文字与内容错误(#35

基础设施

  • 构建缓存优化 — 更新 scripts/build.ts 缓存逻辑,使 PR 构建检查更可靠高效(#36
  • TODO 体系重构 — 将分散的旧 TODO 文件整合为卷级路线图(000-project-roadmap.md + 010020 卷级规划),删除约 30 个旧文件
  • Frontmatter 校验 — 更新 validate_frontmatter.py 校验规则(#36
  • 站点样式 — 新增 site/.vitepress/theme/custom.css 社区卡片样式(#40

翻译

  • 同步更新英文版文档,覆盖本版本所有中文内容变更(#37

v0.4.0, Great Update of Surfing Site; v0.4.0——站内浏览的提升版本

Choose a tag to compare

@Charliechen114514 Charliechen114514 released this 26 May 14:36

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 双平台
  • 主题包括:array vs C 数组、constexpr、EBO、placement new、静态多态、结构体对齐、编译器选项、GPIO 零开销抽象等

指针语义深度示例(#28

新增 code/examples/cpp-deep-dives/pointer-semantics/,从零实现并测试多种指针语义类型:

  • borrowed_ptrobserver_ptr:借用与观察语义
  • weak_ptrsimple_weak_ptrunsafe_weak_ptr:弱引用与生命周期验证
  • weak_flagweak_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 更多关键的教程!卷五(并发编程)全面重写、卷十(课程与演讲笔记)正式上线、贡献者体系建立,以及多项工程改进

Choose a tag to compare

@Charliechen114514 Charliechen114514 released this 20 May 05:25

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

Choose a tag to compare

@Charliechen114514 Charliechen114514 released this 03 May 03:57
5bcaeda

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++

Choose a tag to compare

@Charliechen114514 Charliechen114514 released this 29 Apr 01:35

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、算法、数据存储
  • 贯穿式实战项目