All Projects â†’ changkun â†’ Modern Cpp Tutorial

changkun / Modern Cpp Tutorial

Licence: mit
📚 Modern C++ Tutorial: C++11/14/17/20 On the Fly | https://changkun.de/modern-cpp/

Programming Languages

C++
36643 projects - #6 most used programming language
stylus
462 projects
EJS
674 projects
TeX
3793 projects
Makefile
30231 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Modern Cpp Tutorial

StringPool
A performant and memory efficient storage for immutable strings with C++17. Supports all standard char types: char, wchar_t, char16_t, char32_t and C++20's char8_t.
Stars: ✭ 19 (-99.88%)
Mutual labels:  cpp20
dynamic bitset
Simple Useful Libraries: C++17/20 header-only dynamic bitset
Stars: ✭ 90 (-99.43%)
Mutual labels:  cpp20
Entt
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
Stars: ✭ 6,017 (-62.22%)
Mutual labels:  cpp20
cefal
(Concepts-enabled) Functional Abstraction Layer for C++
Stars: ✭ 52 (-99.67%)
Mutual labels:  cpp20
fixed string
C++17 string with fixed size
Stars: ✭ 64 (-99.6%)
Mutual labels:  cpp20
csgo sdk
c++20 internal csgo-hack base
Stars: ✭ 79 (-99.5%)
Mutual labels:  cpp20
harmony
C++ Monadologie
Stars: ✭ 26 (-99.84%)
Mutual labels:  cpp20
Modern Cpp Features
A cheatsheet of modern C++ language and library features.
Stars: ✭ 13,100 (-17.75%)
Mutual labels:  cpp20
meegram2
Telegram client for Nokia N9 (used tdlib)
Stars: ✭ 16 (-99.9%)
Mutual labels:  cpp20
Thrust
The C++ parallel algorithms library.
Stars: ✭ 3,595 (-77.43%)
Mutual labels:  cpp20
stlkrn
C++ STL in the Windows Kernel with C++ Exception Support
Stars: ✭ 216 (-98.64%)
Mutual labels:  cpp20
scope-guard
Implementation of Scoped Guards and Unique Resource as proposed in P0052.
Stars: ✭ 22 (-99.86%)
Mutual labels:  cpp20
libjwdpmi
C++20 development framework for 32-bit DOS applications
Stars: ✭ 32 (-99.8%)
Mutual labels:  cpp20
cpp-coroutine-job-system
Example Code for Cpp Coroutine Job System talk at CppCon 2020
Stars: ✭ 37 (-99.77%)
Mutual labels:  cpp20
Osiris
Free open-source game cheat for Counter-Strike: Global Offensive, written in modern C++. GUI powered by Dear ImGui.
Stars: ✭ 1,851 (-88.38%)
Mutual labels:  cpp20
asio-grpc
Asynchronous gRPC with Asio/unified executors
Stars: ✭ 100 (-99.37%)
Mutual labels:  cpp20
Yggdrasil-Legacy
Experimental Vulkan Renderer / Game Engine written in C++20.
Stars: ✭ 20 (-99.87%)
Mutual labels:  cpp20
Compile Time Regular Expressions
A Compile time PCRE (almost) compatible regular expression matcher.
Stars: ✭ 2,144 (-86.54%)
Mutual labels:  cpp20
Libcudacxx
The C++ Standard Library for your entire system.
Stars: ✭ 1,861 (-88.32%)
Mutual labels:  cpp20
Doctest
The fastest feature-rich C++11/14/17/20 single-header testing framework
Stars: ✭ 3,568 (-77.6%)
Mutual labels:  cpp20

logo

Modern C++ Tutorial: C++11/14/17/20 On the Fly

Purpose

The book claims to be "On the Fly". Its intent is to provide a comprehensive introduction to the relevant features regarding modern C++ (before 2020s). Readers can choose interesting content according to the following table of content to learn and quickly familiarize the new features you would like to learn. Readers should be aware that not all of these features are required. Instead, it should be learned when you really need it.

At the same time, instead of coding-only, the book introduces the historical background of its technical requirements (as simple as possible), which provides great help in understanding why these features came out.

In addition, the author would like to encourage readers to use modern C++ directly in their new projects and migrate their old projects to modern C++ gradually after reading the book.

Targets

  • This book assumes that readers are already familiar with traditional C++ (i.e. C++98 or earlier), or at least that they do not have any difficulty in reading traditional C++ code. In other words, those who have long experience in traditional C++ and people who desire to quickly understand the features of modern C++ in a short period of time are well suited to read the book.

  • This book introduces, to a certain extent, the dark magic of modern C++. However, these magic tricks are very limited, they are not suitable for readers who want to learn advanced C++. The purpose of this book is offering a quick start for modern C++. Of course, advanced readers can also use this book to review and examine themselves on modern C++.

Start

You can choose from the following reading methods:

Code

Each chapter of this book contains a lot of code. If you encounter problems while writing your own code with the introductory features of the book, reading the source code attached to the book might be of help. You can find the book here. All the code is organized by chapter, the folder name is the chapter number.

Exercises

There are few exercises at the end of each chapter of the book. These are meant to test whether you have mastered the knowledge in the current chapter. You can find the possible answer to the problem here. Again, the folder name is the chapter number.

Website

The source code of the website of this book can be found here, which is built by hexo and vuejs. The website provides you another way of reading the book, it also adapts to mobile browsers.

Build

If you are interested in building everything locally, it is recommended using Docker. To build, simply run:

$ make build

Acknowledgements

This book was originally written in Chinese by Changkun Ou.

The author has limited time and language skills. If readers find any mistakes in the book or any language improvements, please feel free to open an Issue or start a Pull request. For detailed guidelines and checklist, please refer to How to contribute.

The author is grateful to all contributors, including but not limited to Contributors.

This project is also supported by:

Licenses

Creative Commons License
This work was written by Ou Changkun and licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. The code of this repository is open sourced under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].