Skip to content

Latest commit

 

History

History
192 lines (137 loc) · 9.3 KB

File metadata and controls

192 lines (137 loc) · 9.3 KB

Tutorial_AwesomeModernCPP

中文 | 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?

Docs site home preview · click to open

C++ Release Tag License Build


What This Project Is

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.

articles C++ standard embedded examples

Who is it for? New to C/C++ · C or embedded background · Already know C++, want engineering depth

Highlights

🔧 From syntax to silicon

Go beyond desktop C++ — hands-on STM32F1 embedded: register access, interrupt safety, zero-overhead abstraction, cross-compilation & linker scripts.

⚡ Real, runnable examples

CMake projects validated in CI — not unbuildable snippets stranded in articles.

📚 One complete path

10 volumes, 350+ articles — fundamentals → modern features → standard library → advanced → concurrency → performance → engineering → domains.

🚀 C++23 current

Covers and practices concepts, coroutines, ranges and more — not stuck at C++11.

🔍 Read real code, real talks

Vol.9 studies Chromium (e.g. OnceCallback); Vol.10 is reading notes on CppCon and other talks.

🌐 Engineered + bilingual

VitePress (search / dark mode / GitHub Pages auto-deploy) + Chinese main line + English translation + C++98→23 reference cards.

Start Here

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}

Content Guide

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

Volume overview

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/.

Local Development and Checks

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 / projects
  • code/ — code examples, STM32F1 projects, and reusable templates
  • site/ — VitePress configuration, theme, and plugins
  • scripts/ — build, check, coverage, and content tooling
  • todo/, 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

Contributing

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.

Contributors

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.

Acknowledgements

This project references the following excellent resources:

License & Contact