This document contains videos and articles about different aspects of C++ programming. Best way to learn from them is to try them yourself, or in case of a lecture, read some more about this topic in C++ documentation.
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 that and apply it in real world after compeling Basics Of C++ category.
This place is mostly targeted for people with basic C++ and STL knowledge. It's supposed to improve your code's readibility, performance and make your code more compact by using STL features.
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.
-
C++ programming tutorial series ~ Video Tutorial Series by TheChernoProject
-
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
-
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
-
std::optional ~ Video Tutorial by Jason Turner
-
std::any ~ Video Tutorial by Jason Turner
-
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 <-
-
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 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
-
C++ Alignment, Cache Line and Best Practice ~ Lecture by Professor Sheep
- 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
-
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
-
Free Your Functions! ~ CppCon 2017 Talk by Klaus Igleberger <-
-
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 <-
-
Everything You Ever Wanted to Know about DLLs ~ CppCon 2017 Talk by James McNellis <-
-
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
-
Boost C++ Libraries ~ Somewhat an extension for current C++ standard
-
GSL ~ Guidelines Support Library by Microsoft
-
Howling at the Moon: Lua for C++ Programmers ~ CppCon 2017 Talk by Andreas Weis
-
Embedding Lua in C++ ~ Video Tutorial Series by Dave Poo
-
Introduction to C++ python extensions and embedding Python in C++ Apps ~ CppCon 2016 Talk by Diego Rodriguez-Losada
- tree.hh ~ Tree Type container library for C++
-
C++ OpenGL ~ Video Tutorial Series by TheChernoProject
-
WXwidgets C++ Tutorial ~ Video Tutorial by javidx9 <-