中文 | English
A practice-oriented modern C++ learning project: from C/C++ fundamentals and modern language features to concurrency, performance, engineering, embedded practice, and open-source code study. What about click the image below?
A systematic modern C++ tutorial — from syntax to silicon, bringing modern C++ to the desktop, STM32 embedded, and industrial open-source projects.
10 volumes, 350+ articles, from C/C++ fundamentals through concurrency, performance, engineering, and domain practice — every key concept backed by a CMake example verified in CI, not an unbuildable snippet stranded in an article.
Who is it for? New to C/C++ · C or embedded background · Already know C++, want engineering depth
| Go beyond desktop C++ — hands-on STM32F1 embedded: register access, interrupt safety, zero-overhead abstraction, cross-compilation & linker scripts. | CMake projects validated in CI — not unbuildable snippets stranded in articles. |
| 10 volumes, 350+ articles — fundamentals → modern features → standard library → advanced → concurrency → performance → engineering → domains. | Covers and practices concepts, coroutines, ranges and more — not stuck at C++11. |
| Vol.9 studies Chromium (e.g. OnceCallback); Vol.10 is reading notes on CppCon and other talks. | VitePress (search / dark mode / GitHub Pages auto-deploy) + Chinese main line + English translation + C++98→23 reference cards. |
The fastest path is to read the online docs:
Run the docs site locally:
git clone https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP.git
cd Tutorial_AwesomeModernCPP
pnpm install
pnpm dev
# Visit http://localhost:5173/Tutorial_AwesomeModernCPP/Production build and preview:
BUILD_CONCURRENCY=8 pnpm build
pnpm preview
# Visit http://localhost:4173/Tutorial_AwesomeModernCPP/Every example is a standalone CMake project validated in CI — not an unbuildable snippet stranded in an article. Pick any directory and build it:
cmake -S code/examples/chapter05/06_array_vs_stdarray -B build && cmake --build build -j${nproc}The visual roadmap (ten-volume content map + learning paths by background) is integrated into the "Project Roadmap" section on the online docs home page:
→ View the visual roadmap online
Core volumes are complete, advanced ones are still being filled in — progress in the open (counts are a snapshot and change as content grows):
| Volume | Topic | Articles | Maturity |
|---|---|---|---|
| Vol 1 | Fundamentals (incl. C crash-course) | 87 | ✅ Complete |
| Vol 2 | Modern features (RAII / smart pointers / move / lambda) | 44 | ✅ Complete |
| Vol 3 | Standard library in depth | 8 | 🔨 In progress |
| Vol 4 | Advanced (concepts / coroutines / templates) | 8 | 🔨 In progress |
| Vol 5 | Concurrency | 44 | ✅ Complete |
| Vol 6 | Performance | 3 | 🔨 In progress |
| Vol 7 | Engineering (CMake / toolchain / debugging) | 8 | 🔨 In progress |
| Vol 8 | Domains (embedded / networking / GUI / storage) | 63 | ✅ Complete |
| Vol 9 | Open-source code study (Chromium etc.) | 16 | 📚 Ongoing |
| Vol 10 | Talk & course notes (CppCon etc.) | 17 | 📚 Ongoing |
Plus "Compilation & Linking" (11) and C++ feature reference cards (46). Most core volumes are complete; the rest are being filled in.
📋 For volume content and progress see the project roadmap; for release history see changelogs/.
Common commands
| Command / Script | Purpose |
|---|---|
pnpm dev |
Start the VitePress dev server with hot reload |
pnpm build |
Production build with per-volume parallel build and search-index merge |
pnpm build:single |
Run the regular single VitePress build |
pnpm check:links |
Check internal Markdown and component links |
pnpm preview |
Preview the production build |
pnpm hooks:install / scripts/setup_precommit.sh |
Install pre-commit checks |
pnpm coverage |
Show English translation coverage |
pnpm coverage:update |
Update the English coverage badge in README.md |
.venv/bin/python scripts/validate_frontmatter.py |
Validate article frontmatter |
.venv/bin/python scripts/check_quality.py documents/ |
Run content quality checks |
.venv/bin/python scripts/build_examples.py --host |
Build host-side CMake examples |
.venv/bin/python scripts/build_examples.py --stm32 |
Build STM32 example projects |
Project structure, releases, and branches
Project Structure
documents/— 10 tutorial volumes (bilingual), plus community / cpp-reference / compilation / projectscode/— code examples, STM32F1 projects, and reusable templatessite/— VitePress configuration, theme, and pluginsscripts/— build, check, coverage, and content toolingtodo/,changelogs/— content roadmap and release history
For the full directory and navigation, see the online docs sidebar.
Version History
See changelogs/ for full release history.
Branch Overview
| Branch | Purpose | Status |
|---|---|---|
main |
Primary development branch | Active |
archive/legacy_20260415 |
Pre-restructuring archive | Read-only |
gh-pages |
Auto-deployed documentation site | Auto-generated |
Contributions are welcome: documentation fixes, example improvements, new chapters, translation review, issue reports, content suggestions, or submissions to Community Articles. Please read CONTRIBUTING.md first.
Quick workflow: Fork --> feature branch --> commit --> push --> pull request
If you have questions, feel free to open an issue at GitHub Issues.
Thanks to everyone who has contributed to this project! See CONTRIBUTORS.md for details.
Contributions are not limited to code. UI design, illustrations, issue reports, and content suggestions all count. See CONTRIBUTING.md.
This project references the following excellent resources:
- License: MIT License
- Issues: Submit an issue
- Email: 725610365@qq.com
- Organization: Awesome-Embedded-Learning-Studio