English | 中文
一个持续建设的,面向工程实践的现代 C++ 系统教程:从 C/C++ 基础、到现代C++语言特性,再到标准库、并发、性能、工程化、领域应用与开源项目研读。持续的进步中! 试一试点一下下面的图片?
这是一套正在持续进步的,系统化的现代 C++ 教程——从语法到芯片,把现代 C++ 写进桌面、STM32 嵌入式与工业级开源项目。
10 卷、从 C/C++ 基础一路讲到并发、性能、工程与领域实战,我们尝试将每一个概念转化为具体的代码,丢到CI机器验证(孩子们真没出错)
正在打算系统的学 C/C++ 的 bro 们 · 有 C 或嵌入式经验的 bro 们 · 已会 C++ 想补齐工程能力的 bro 们
| 深入 STM32F1 嵌入式——寄存器访问、中断安全、零开销抽象、交叉编译与链接脚本,打通裸机。 | 故意写崩的代码、修好的版本、一步步排查的实录——空指针、释放后使用,先崩给您看,再带您破案。 |
| 嵌入式线以 Renode 模拟器为主验证环境:一条命令让固件在虚拟 Blue Pill 上跑起来,寄存器采样证明 LED 真的在闪。 | C++98→23 一特性一卡,忘了语法随手查,不用翻回整章教程。 |
| 卷九研读 Chromium(如 OnceCallback),卷十是 CppCon 等会议演讲的读书笔记。 | VitePress(搜索 / 暗色 / GitHub Pages 自动部署)+ 中文主线 + 英文翻译。 |
最快的方式是直接阅读在线文档:
本地预览文档站:
git clone https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP.git
cd Tutorial_AwesomeModernCPP
pnpm install
pnpm dev
# 访问 http://localhost:5173/Tutorial_AwesomeModernCPP/
# 如果你是在WSL中,可能需要pnpm dev --host!生产构建与预览:
# 如果您的CPU核心大于4,我们推介加速构建,默认的构建脚本是为CI服务的,Github分配的机器有点小qaq
BUILD_CONCURRENCY=8 pnpm build
pnpm preview
# 访问 http://localhost:4173/Tutorial_AwesomeModernCPP/每个示例都是独立 CMake 工程、CI 编译验证过——不是文章里跑不起来的伪代码。任选一个目录即可构建:
cmake -S code/examples/chapter05/06_array_vs_stdarray -B build && cmake --build build -j${nproc}可视化路线图(十卷内容地图 + 按背景选择学习路径)已整合进在线文档站首页的「项目路线图」区:
主线卷已成型,进阶卷持续补充——不藏进度:
| 卷 | 主题 | 成熟度 |
|---|---|---|
| 卷一 | 基础入门(含 C 速通) | ✅ 成型 |
| 卷二 | 现代特性(RAII / 智能指针 / 移动 / lambda) | ✅ 成型 |
| 卷三 | 标准库深入 | ✅ 成型 |
| 卷四 | 高级主题(concepts / 协程 / 模板 / 设计模式) | 🔨 在建 |
| 卷五 | 并发编程 | ✅ 成型 |
| 卷六 | 性能优化 | ✅ 成型 |
| 卷七 | 工程实践(CMake / 工具链 / 调试) | 🔨 在建 |
| 卷八 | 领域应用(嵌入式 / TinyML / 网络等) | 🔨 在建 |
| 卷九 | 开源项目研读(Chromium 等) | 📚 持续更新 |
| 卷十 | 课程与演讲笔记(CppCon 等) | 📚 持续更新 |
另含新手起步、「编译与链接」专题、崩溃实验室、社区文章与 C++ 特性参考卡。
📋 各卷内容与进度见 项目总路线图,版本变更见 changelogs/。
常用命令
| 命令 / 脚本 | 功能 |
|---|---|
pnpm dev |
启动 VitePress 开发服务器,支持热更新(PS:WSL看不到的朋友记得加一个--host穿透) |
pnpm build |
生产构建,按分卷并行构建并合并搜索索引 |
pnpm build:single |
使用 VitePress 单体构建 |
pnpm check:links |
检查 Markdown 与组件内部链接有效性 |
pnpm preview |
预览生产构建结果 |
pnpm hooks:install / scripts/setup_precommit.sh |
安装 pre-commit 提交前检查 |
pnpm coverage |
查看英文翻译覆盖率 |
pnpm coverage:update |
更新 README.md 中的英文翻译覆盖率徽章 |
.venv/bin/python scripts/validate_frontmatter.py |
验证文章 frontmatter |
.venv/bin/python scripts/check_quality.py documents/ |
内容质量检查 |
.venv/bin/python scripts/build_examples.py --host |
编译主机侧 CMake 示例 |
.venv/bin/python scripts/build_examples.py --stm32 |
编译 STM32 示例工程 |
项目结构、版本与分支
项目结构
documents/— 10 卷教程内容(中英双语),含 community / cpp-reference / compilation / projects 等区code/— 示例代码、STM32F1 工程与可复用模板site/— VitePress 站点配置、主题与插件scripts/— 构建、检查、覆盖率与内容工具todo/、changelogs/— 内容路线图与版本变更记录
完整目录与站点导航见在线文档站侧边栏。
版本历史
完整变更记录见 changelogs/。
本项目对 AI coding agent 开箱即用,也欢迎用 Agent 辅助学习与贡献!
- 🤖 AGENTS.md —— 跨 agent 通用入口(Claude Code / Cursor / Copilot / Codex 等都读它)
- 📚 用 agent 辅助 C++ 学习 + C++ 常见误解 FAQ
- ✍️ Claude 专属资产(写作风格 / 审查命令 / hooks)见 CLAUDE.md
欢迎修正文档、改进示例、补充章节、校对翻译、提交问题、提出内容建议,或向 社区文章 投稿。请先阅读 CONTRIBUTING.md。
快速流程:Fork --> 特性分支 --> 提交 --> Push --> Pull Request
如有问题,欢迎在 GitHub Issues 中提交。
这里感谢所有为本项目做出贡献的人!详见 CONTRIBUTORS.md。
贡献方式不限于代码,包括界面设计、插画、问题反馈、内容建议等。详见 CONTRIBUTING.md。
这个项目极大的受到下面这些项目和网站的启发,致敬前辈!
- 许可证:MIT License,随便改,fork,分发
- Issues:提交问题,遇到任何疑问,或者发现代码存在显著问题,随意提,第一时间响应。
- Email:725610365@qq.com
- QQ 群:TAMCPP 交流群(群号
1107100989),点这里一键加群 - 组织:隶属于Awesome-Embedded-Learning-Studio