
Modern C++ Tutorial
A free, book-style tutorial covering C++11 through C++26 new language features.changkun/modern-cpp-tutorial
- Stars
- 25.9k
- Forks
- 3.1k
- Licence
- MIT
- Language
- C++
- Last update
- 29 days ago
- Type
- Learning resource
What it is
This is a free tutorial book that explains the new features added to C++ from C++11 through C++26, with short code examples. It is meant to help readers who already know traditional C++ catch up on modern additions quickly. The README also gives historical background for why each feature was introduced.
- Read a chapter on a specific feature, such as C++17 or C++20 additions, when you need it
- Study the included source code organized by chapter to see examples running
- Work through the end-of-chapter exercises and compare against the provided answers
- Read it online, as a PDF, or as an EPUB
Great for
- Experienced C++ developers who want a quick overview of modern features
- Developers migrating older C++ codebases to modern C++ gradually
- Readers who prefer to look up specific features as they need them
- Anyone reviewing modern C++ concepts
Not ideal for
- Complete beginners to programming, since the README assumes familiarity with traditional C++ (C++98 or earlier)
- Readers seeking advanced C++ mastery, since the README says it only covers a quick start and limited advanced topics
How to get it
- 1
Read it online
Clone the repository
git clone https://github.com/changkun/modern-cpp-tutorial - 2
Run it
- Open the online book at https://changkun.de/modern-cpp/ or the table of contents at ./book/en-us/toc.md in the repository
- Pick a chapter that matches the feature you want to learn
- Read the chapter and browse the matching code folder for examples
- Check the exercises folder to test your understanding
- 3
Get the most out of it
- Use the chapter-numbered code folders to run examples alongside the text
- Try the end-of-chapter exercises and compare with the provided answers
- Download the PDF or EPUB for offline reading
- Use the Docker-based build (make build) if you want to build the website locally
Downloads
Strengths
- Free to read online, as PDF, or as EPUB, with a website version that works on mobile browsers
- Organized by feature and by chapter, so readers can pick only what they need
- Includes historical background alongside code examples
Trade-offs
- Explicitly limited in depth; the README says it is not suited to learning advanced C++
- Content is a tutorial rather than a reference, so it may not cover every detail of each standard
- The README notes the author wrote it in Chinese and has limited language skills, so readers may encounter translation or language issues; corrections are welcome via issues and pull requests
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| modern-cpp-tutorial (this) | 25.9k | Learning resource | intermediate | 29 days ago | Experienced C++ developers who want a quick overview of modern features |
| modern-cpp-features | 21.9k | Learning resource | beginner | 12 days ago | C++ developers catching up on features added since C++11 |
| entt | 13.2k | Library | advanced | 4 days ago | C++ game developers who want an ECS |
| cpp-httplib | 17k | Library | beginner | 6 days ago | C++ developers who need a simple embedded HTTP server or client without a large framework |
| C-Plus-Plus | 34.8k | Learning resource | intermediate | 1 months ago | Students learning algorithms and data structures in C++ |
| IoT-For-Beginners | 17.2k | Learning resource | beginner | 5 months ago | Students who want a structured, project-based introduction to IoT |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.