Content
<div align=center><img width="640" src="https://github.com/user-attachments/assets/bc0f1007-752e-4da5-844b-dab246198e85"></div>
<div align="center">
<a href="https://forum.d2learn.org/category/20" target="_blank"><img src="https://img.shields.io/badge/D2Learn-mcpp_standard-blue" /></a>
<a href="https://d2learn.org" target="_blank"><img src="https://img.shields.io/badge/License-Apache2.0-success" alt="License"></a>
<a href="https://space.bilibili.com/65858958/lists/5208246" target="_blank"><img src="https://img.shields.io/badge/Video-bilibili-teal" alt="Bilibili"></a>
</div>
<div align="center">
<a href="https://sunrisepeak.github.io/mcpp-standard" target="_blank">Online eBook</a>
|
<a href="https://www.bilibili.com/video/BV182MtzPEiX" target="_blank">Introduction</a>
|
<a href="videos" target="_blank">Videos/Animations</a>
|
<a href="https://forum.d2learn.org/category/20" target="_blank">Forum</a>
|
<a href="https://github.com/d2learn/xlings" target="_blank">Tools</a>
</div>
<div align=center><b>Hands-on Learning of Modern C++ Core Language Features</b> | Interactive Code Exercises</div>
---
## Changelog - [ 2025/08/29 ]
> Continuously updated
**C++11 - 11 - Inherited Constructors**
- **[code-0](https://github.com/Sunrisepeak/mcpp-standard/blob/main/dslings/cpp11/11-inherited-constructors-0.cpp) / [code-1](https://github.com/Sunrisepeak/mcpp-standard/blob/main/dslings/cpp11/11-inherited-constructors-1.cpp) / [code-2](https://github.com/Sunrisepeak/mcpp-standard/blob/main/dslings/cpp11/11-inherited-constructors-2.cpp)** - 2025/08/29
- **[book](https://sunrisepeak.github.io/mcpp-standard/cpp11/11-inherited-constructors.html)** - 2025/08/28
- **video** - todo
**Get the Latest Content**
```bash
d2x update
```
More -> [changelog](https://github.com/Sunrisepeak/mcpp-standard/blob/main/book/src/changelog.md)
---
## Objectives
**Project Perspective**
- **1.** Anyone can access course resources **for free** online
- **2.** Emphasize learning through **hands-on practice/code exercises**
- **3.** Provide tools for **automated code exercises + convenient environment setup**
- **4.** Achieve a virtuous cycle through community sharing, co-construction, and mutual assistance - **Open Source + Forum**
**User Perspective**
- [Master] - **Core language features of Modern C++** and their usage scenarios
- [Master] - Ability to **locate issues** through compiler error messages
- [Familiarize] - Ability to resolve unfamiliar issues in C++ using documentation and cppreference
- [Understand] - How to participate in the technical community - using open source projects, asking questions, participating in discussions, or contributing
## Interactive Code Exercises
- 🌍 Progress/Status Display
- 📍 Automatic Location of Exercise Code Files
- ✅ Real-time Code Checking and Result Validation
- 🤖~AI Intelligent **Code Guidance**~
<div align=center><img width="840" src="book/imgs/mcpp-standard-demo.gif"></div>
## Quick Start
> Use [xlings](https://github.com/d2learn/xlings) to obtain the project and run the **compiler driver development mode** (automated detection) for code exercises
>
> - Environment setup demonstration videos: [windows](https://www.bilibili.com/video/BV1L4KuzEEcE) - [linux](https://www.bilibili.com/video/BV182MtzPEiX?p=2) - [macos](https://www.bilibili.com/video/BV182MtzPEiX?p=2)
<details>
<summary>Click to view xlings installation commands</summary>
---
#### Linux/MacOS
```bash
curl -fsSL https://d2learn.org/xlings-install.sh | bash
```
#### Windows - PowerShell
```bash
irm https://d2learn.org/xlings-install.ps1.txt | iex
```
> Note: xlings includes the required xim and d2x tools -> [Details](https://d2learn.org/xlings)
---
</details>
### Obtain the Project
> Download the project to the current directory and automatically configure the local environment
```bash
xlings install d2x:mcpp-standard
```
### Local Documentation/eBook (Optional)
> You can execute the `d2x book` command in the project directory to open the local documentation (including usage instructions and eBook)
```bash
d2x book
```
### Automatic Detection of Exercise Code
> Run the checker command in the project directory `mcpp-standard` to enter the automatic detection program for exercise code
```bash
xlings checker
```
### Sync the Latest Exercise Code
> Since the project is continuously updated, you can use the command below for automatic synchronization (if synchronization fails, you may need to manually update the project code using git)
```bash
d2x update
```
## List of Exercises and Video Interpretations
| C++ Standard | Feature | Title | Documentation/Exercise Code/Video | Notes |
| --- | --- | --- | --- | --- |
| **Guidance** | `Project Usage Tutorial/Guide` | hello mcpp | [docs](https://github.com/Sunrisepeak/mcpp-standard/blob/main/book/src/chapter_1.md) / [code](/dslings/hello-mcpp.cpp) / [video](https://www.bilibili.com/video/BV182MtzPEiX?p=2) | |
| **cpp11** | `00 - auto and decltype` | Type Automatic Deduction | [docs](https://github.com/Sunrisepeak/mcpp-standard/blob/main/book/src/cpp11/00-auto-and-decltype.md) / [code](/dslings/cpp11/00-auto-and-decltype-0.cpp) / [video](https://www.bilibili.com/video/BV1xkdYYUEyH) | |
| | | Notes on decltype | [code](/dslings/cpp11/00-auto-and-decltype-4.cpp) / [video](https://www.bilibili.com/video/BV1KWoMYUEzW) | [Supplement](https://forum.d2learn.org/topic/82) |
| | `01 - default and delete` | Control Default Constructor Generation | [code](/dslings/cpp11/01-default-and-delete-0.cpp) / [video](https://www.bilibili.com/video/BV1B35pz5EN2) | |
| | | Example of Controlling Type Object Behavior | [code](/dslings/cpp11/01-default-and-delete-1.cpp) / [video](https://www.bilibili.com/video/BV1Vg5tznE8o) | |
| | `02 - override and final` | Explicit Intent of Overriding and Compiler Checks | [code](/dslings/cpp11/02-final-and-override-0.cpp) / [video](https://www.bilibili.com/video/BV1BdLJz6EKJ) | |
| | | Inheritance and Reproduction Restrictions | [code](/dslings/cpp11/02-final-and-override-1.cpp) / [video](https://www.bilibili.com/video/BV1H1jAzTEYT) | |
| | `03 - Trailing Return Type` | Basic Usage of Trailing Return Type | [code](/dslings/cpp11/03-trailing-return-type.cpp) / [video](https://www.bilibili.com/video/BV1Ma5wzgE9h) | |
| | `04 - Rvalue References` | Mutable Nature of Temporary Object Lifetime Extension | [code](/dslings/cpp11/04-rvalue-references.cpp) / [video](https://www.bilibili.com/video/BV1vn5wzmEVk) | |
| | `05 - Move Semantics` | Move Construction and Trigger Timing | [code](/dslings/cpp11/05-move-semantics-0.cpp) / [video](https://www.bilibili.com/video/BV19gj9zAERL) | |
| | | Move Assignment and Trigger Timing | [code](/dslings/cpp11/05-move-semantics-1.cpp) / [video](https://www.bilibili.com/video/BV1NDjRzREsY) | |
| | | Moving Resources, Not Objects | [code](/dslings/cpp11/05-move-semantics-2.cpp) / [video](https://www.bilibili.com/video/BV1P9jRzXE3a) | |
| | `06 - Scoped Enums` | Issues with Traditional Enums | [code](/dslings/cpp11/06-scoped-enums-0.cpp) / [video](https://www.bilibili.com/video/BV1fn7iz4EuR) | |
| | | Basic Usage of Scoped Enums | [code](/dslings/cpp11/06-scoped-enums-1.cpp) / [video](https://www.bilibili.com/video/BV1fn7iz4EuR) | |
| | `07 - constexpr` | Differences Between const and constexpr | [code](/dslings/cpp11/07-constexpr-0.cpp) / [video](https://www.bilibili.com/video/BV1LRMLzgE4w) | |
| | | Example of Compile-time Calculation Application | [code](/dslings/cpp11/07-constexpr-1.cpp) / [video](https://www.bilibili.com/video/BV15CMEzLEuN) | |
| | [...](/videos) | [...](/videos) | [...](/videos) | |
## Community | Communication
- **Instant Communication (QQ Group):** 167535744
- [**Forum Section:**](https://forum.d2learn.org/category/20): Exercise code related to the project, technical communication, and discussions
> **Note:** For complex issues (technical, environment setup, etc.), it is recommended to post on the forum and describe the problem details thoroughly for more effective resolution and reuse.
## Participate in the Project | Community Contribution
- **Engage in Community Communication:** Provide feedback, participate in community discussions
- **Participate in Project Maintenance and Development:** Help address issues in the community, fix bugs, and develop & optimize new features/modules
**📑 Open Source License & Contributor License Agreement (CLA)**
- This project welcomes free use and distribution! You can use, modify, and share the code and documentation of this project **for free** under the [Apache License 2.0](LICENSE-CODE) and [CC-BY-NC-SA 4.0](LICENSE-BOOK) agreements
- If you wish to contribute code or documentation, please read the [Contributor License Agreement (CLA)](CLA.md) first.
**👥 Contributors**
<a href="https://github.com/Sunrisepeak/mcpp-standard/graphs/contributors">
<img src="https://contrib.rocks/image?repo=Sunrisepeak/mcpp-standard" />
</a>
<a href="https://hellogithub.com/repository/Sunrisepeak/mcpp-standard" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=7877f7cb12e940a5a432d49c19a360df&claim_uid=aNLTSv91Awj8ruX&theme=dark" alt="Featured|HelloGitHub" style="width: 250px; height: 54px;" width="250" height="54" /></a>
You Might Also Like
Ollama
Ollama enables easy access to large language models on macOS, Windows, and Linux.

n8n
n8n is a secure workflow automation platform for technical teams with 400+...
OpenWebUI
Open WebUI is an extensible web interface for customizable applications.

Dify
Dify is a platform for AI workflows, enabling file uploads and self-hosting.

Zed
Zed is a high-performance multiplayer code editor from the creators of Atom.
MarkItDown MCP
markitdown-mcp is a lightweight MCP server for converting URIs to Markdown.