This document contains videos and articles about different aspects of C++ programming. The best way to learn from them is to try them out yourself, or in the case of a lecture, do private research and experiments regarding the topic.
You should not proceed to the topics after C++ STL without knowing the basics of C++ (or completing at least one series from Basics Of C++ category). The content following C++ STL isn't sorted by the difficulity, everything there is considered advanced C++. You should be able to understand most of it and apply it in your code after completing Basics Of C++ category.
This document is a collection of high quality c++ learning materials for both new and experienced c++ programmers.
Create either an issue with title and link to the resource you would like to add to this document or create new branch, add some changes and create a pull request.
Please leave your comments, thoughts and suggestions via Issues.
-
Beginner C++ Game Programming Tutorial Series ~ Video Tutorial Series by ChiliTomatoNoodle
-
C++ programming tutorial series ~ Video Tutorial Series by LearningLad
-
C++ advanced programming tutorial series ~ Video Tutorial Series by Bo Qian
-
C++ Tutorial for Beginners - Full Course ~ Video Tutorial Series by freeCodeCamp.org
-
STL Containers - Learn Modern C++ ~ Video Tutorial by Code Blacksmith
-
How to write an STL compatible container ~ Article by Vanand Gasparyan
-
Writing your own STL container ~ Question answer by Mooing Duck
-
Why does the C++ STL not provide any “tree” containers? ~ Question Answer by Martin York
-
Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step ~ CppCon 2017 Talk by Matt Kulukundis
-
Enough string_view to Hang Ourselves ~ CppCon 2018 Talk by Victor Ciura
-
Customizing the Standard Containers ~ CppCon 2017 Talk by Marshall Clow
-
Implementing static_vector: How Hard Could it Be? ~ CppCon 2021 Talk by David Stone
-
105 STL Algorithms in Less Than an Hour ~ ACCU 2018 Talk by Jonathan Boccara
-
STL Algorithms - why you should use them, and how to write your own ~ CppCon 2016 Talk by Marshall Clow
-
STL Algorithms in Action ~ CppCon 2016 Talk by Michael VanLoon
-
Writing Standard Library Compliant Data Structures and Algorithms ~ CppCon 2018 Talk by Marc Gregoire
-
C++17 Parallel Algorithms ~ CppCon 2017 Talk by Dietmar Kühl
-
Fantastic Algorithms and Where To Find Them ~ CppCon 2017 Talk by Nicholas Ormrod
-
tuple<>: What's New and How it Works ~ CppCon 2016 Talk by Stephan T. Lavavej
-
How to Write Well-Behaved Value Wrappers ~ CppCon 2018 Talk by Simon Brand
-
Effective replacement of dynamic polymorphism with std::variant ~ CppCon 2018 Talk by Mateusz Pusz
-
constexpr - Taking Constants to the Next Level ~ Video Tutorial by Code Blacksmith
-
constexpr: Introduction ~ CppCon 2015 Talk by Scott Schurr
-
constexpr: Applications ~ CppCon 2015 Talk by Scott Schurr
- functional: What's New, And Proper Usage ~ CppCon 2015 Talk by Stephan T. Lavavej
-
A <chrono> Tutorial ~ CppCon 2016 Talk by Howard Hinnant
-
Benchmark Timer ~ Video Tutorial by Code Blacksmith
- What C++ Programmers Need to Know about Header <random> ~ CppCon 2016 Talk by Walter E. Brown
-
What do you mean "thread-safe"? ~ CppCon 2018 Talk by Geoffrey Romer
-
Thread Synchronization Primitives ~ Video Tutorial by Code Blacksmith
-
Thread Pool ~ Video Tutorial by Code Blacksmith
-
Multithreaded Logger ~ Video Tutorial by Code Blacksmith
-
Memory Barriers ~ Video Tutorial by Code Blacksmith
-
Multithreading is the answer. What is the question? Part 1 Part 2 ~ CppCon 2017 Talk by Ansel Sermersheim
-
The Trap of std::async ~ Video Tutorial by Code Blacksmith
-
Templates in C++ ~ Video Tutorial by TheChernoProject
-
Variadic Templates ~ Video Tutorial by Jason Turner
-
Variadic Templates in C++11 / C++14 - An Introduction ~ CppCon 2015 Talk by Peter Sommerlad
-
Using Template Magic to Automatically Generate Hybrid CPU/GPU-Code ~ CppCon 2018 Talk by Elmar Westphal
-
C++ Templates Revised ~ CppCon 2017 Talk by Nicolai Josuttis
-
C++ Template Programming ~ Article by Jeremiah
-
Concepts: The Future of Generic Programming (the future is here) ~ CppCon 2018 Talk by Bjarne Stroustrup
-
Concepts in 60: Everything you need to know and nothing you don't ~ CppCon 2018 Talk by Andrew Sutton
-
Type Deduction and Why You Care ~ CppCon 2014 Talk by Scott Meyers
-
Type Traits - what are they and why should I use them? ~ CppCon 2015 Talk by Marshall Clow
-
Template Type Deduction ~ Video Tutorial by Code Blacksmith
-
Class Template Argument Deduction for Everyone ~ CppCon 2018 Talk by Stephan T. Lavavej
-
Type Punning in C++17: Avoiding Pun-defined Behavior ~ CppCon 2017 Talk by Scott Shurr
-
Check if type has a member method of given signature ~ Question Answer by jrok
-
Custom Overload Sets and Inline SFINAE for Truly Generic Interfaces ~ CppCon 2018 Talk by Vincent Reverdy
-
Introduction to C++ Template Metaprogramming ~ NDC Oslo 2016 Talk by Sasha Goldshtein
-
Modern Template Metaprogramming:A Compendium,Part 1 ~ CppCon 2014 Talk by Walter E.Brown Part 1
-
Modern Template Metaprogramming:A Compendium,Part 2 ~ CppCon 2014 Talk by Walter E.Brown Part 2
-
Modern Memory Management ~ Video Tutorial by Code Blacksmith
-
std::launder - what is it? ~ Video Tutorial by Code Blacksmith
-
Move Semantics Explained ~ Video Tutorial by Code Blacksmith
-
Copy and Swap ~ Video Tutorial by Code Blacksmith
-
“Want fast C++? Know your hardware!" ~ Lecture by Timur Doumler ( CppCon 2017 )
- GC FAQ ~ Document regarding garbage collection in C++
-
std::allocator Is to Allocation what std::vector Is to Vexation ~ CppCon 2015 Talk by Andrei Alexandrescu
-
Custom Allocator Tutorial ~ Video Tutorial by Code Blacksmith
-
How to Write a Custom Allocator ~ CppCon 2017 Talk by Bob Steagall
-
Efficient Object Pool ~ Video Tutorial by Code Blacksmith
-
Local ('Arena') Memory Allocators (part 1) ~ CppCon 2017 Talk by John Lakos
-
Local ('Arena') Memory Allocators (part 2) ~ CppCon 2017 Talk by John Lakos
-
C++ Exception Handling ~ Article on tutorialspoint.com
-
Exception Safety ~ Video Tutorial by Code Blacksmith
-
Custom C++ Exceptions for Beginners ~ Article by Peter Forgacs
-[Game Programming from Scratch in C++] (https://guide.handmadehero.org/) ~By Casey Muratori
-
C++ in Huge AAA Games ~ CppCon 2014 Talk by Nicolas Fleury
-
The C++ Execution Model ~ CppCon 2018 Talk by Adelstein Lelbach
-
Game engine using STD C++ 11 ~ CppCon 2016 Talk by Jason Jurecka
-
Modern User Interfaces for C++ ~ CppCon 2015 Talk by Milian Wolff
-
EA’s Secret Weapon: Packages and Modules ~ CppCon 2017 Talk by Scott Wardle
-
Naivety of Creating Cross-Platform, Modern C++ Libraries... ~ CppCon 2017 Talk by Jonathan Henson
-
Modern C++ API Design (part 1 of 2) ~ CppCon 2018 Talk by Titus Winters
-
Modern C++ API Design (part 2 of 2) ~ CppCon 2018 Talk by Titus Winters
-
Better Code: Human Interface ~ CppCon 2018 Talk by Sean Parent
-
Modern C++ Interfaces... ~ CppCon 2017 Talk by Stephen Dewhurst
-
Building C++ Modules ~ CppCon 2017 Talk by Boris Kolpackov
-
Intro to the C++ Object Model ~ CppCon 2015 Talk by Richard Powell
-
Design Patterns and Modern C++ ~ Video Tutorial by JetBrainsTV
-
Multiple Inheritance problem in C++ ~ Video Tutorial by Bo Qian
-
Using Functional Programming Patterns... ~ CppCon 2017 Talk by Jeremy Demeule & Quentin Duval <-
-
Singleton Design Pattern ~ Video Tutorial by Code Blacksmith
-
Strategy Design Pattern ~ Video Tutorial by Code Blacksmith
-
Builder Design Pattern ~ Video Tutorial by Code Blacksmith
-
Agent based class design ~ CppCon 2017 Talk by Odin Holmes
-
Design Patterns for Low-Level Real-Time Rendering ~ CppCon 2017 Talk by Nicolas Guillemot <-
-
Implementation of a component-based entity system in modern C++ ~ CppCon 2015 Talk By Vittorio Romeo <-
-
Data Driven Entity Component System in C++17 ~ Code Europe Autumn 2017 Talk K.Kisielewicz
-
OOP Is Dead, Long Live Data-oriented Design ~ CppCon 2018 Talk by Stoyan Nikolov
-
Make Classes Great Again! (Using Concepts for Customization Points) ~ CppCon 2017 Talk by Vinnie Falco
-
Operator Overloading: History, Principles and Practice ~ CppCom 2018 Talk by Ben Deane
-
How to Write Effective Documentation for C++ Libraries... ~ CppCon 2017 Talk by Robert Ramey
-
Dynamically Loaded Libraries Outside the Standard ~ CppCon 2021 Talk by Zhihao Yuan
-
Readable C++ ~ CppCon 2016 Talk by Timur Doumler <-
-
Building Software Capital: How to write the highest quality code and why ~ CppCon 2016 Talk by David Sankel <-
-
Secure Coding Best Practices: Your First Line Is The Last Line Of Defense (1 of 2) ~ CppCon 2018 Talk by Matthew Butler <-
-
Secure Coding Best Practices: Your First Line Is The Last Line Of Defense (2 of 2) ~ CppCon 2018 Talk by Matthew Butler <-
-
Applied Best Practices ~ CppCon 2018 Talk by Jason Turner <-
-
Practical Performance Practices ~ CppCon 2016 Talk by Jason Turner <-
-
Writing Good C++14... By Default ~ CppCon 2015 Talk by Herb Sutter <-
-
Easy to Use, Hard to Misuse: Declarative Style in C++ ~ CppCon 2018 Talk Ben Deane <-
-
10 Core Guidelines You Need to Start Using Now ~ CppCon 2017 Talk by Kate Gregory