{"id":15047794,"url":"https://github.com/redskittlefox/cpp-learning-resources","last_synced_at":"2025-04-06T19:12:40.728Z","repository":{"id":47098111,"uuid":"200376577","full_name":"RedSkittleFox/Cpp-Learning-Resources","owner":"RedSkittleFox","description":"C++ Learning Resources","archived":false,"fork":false,"pushed_at":"2024-01-20T19:26:22.000Z","size":46,"stargazers_count":305,"open_issues_count":2,"forks_count":39,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-06T19:12:36.959Z","etag":null,"topics":["best-parctices","best-practices","cpp","cpp11","cpp14","cpp17","cpp20","learning","learning-cplusplus","programming-fundamentals","video-tutorial"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RedSkittleFox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-03T13:06:05.000Z","updated_at":"2025-04-06T01:36:53.000Z","dependencies_parsed_at":"2024-01-20T20:30:53.841Z","dependency_job_id":"abbf81f4-f004-403d-9f41-25502b6e8649","html_url":"https://github.com/RedSkittleFox/Cpp-Learning-Resources","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedSkittleFox%2FCpp-Learning-Resources","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedSkittleFox%2FCpp-Learning-Resources/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedSkittleFox%2FCpp-Learning-Resources/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedSkittleFox%2FCpp-Learning-Resources/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RedSkittleFox","download_url":"https://codeload.github.com/RedSkittleFox/Cpp-Learning-Resources/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247535519,"owners_count":20954576,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["best-parctices","best-practices","cpp","cpp11","cpp14","cpp17","cpp20","learning","learning-cplusplus","programming-fundamentals","video-tutorial"],"created_at":"2024-09-24T21:04:48.568Z","updated_at":"2025-04-06T19:12:40.699Z","avatar_url":"https://github.com/RedSkittleFox.png","language":null,"readme":"# About This Document\n\n#### Usage\nThis 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. \n\n#### Advanced topics\nYou should not proceed to the topics after [C++ STL](https://github.com/RedSkittleFox/cpp-learning-resources#c-stl) without knowing the basics of C++ (or completing at least one series from [Basics Of C++](https://github.com/RedSkittleFox/cpp-learning-resources#basics-of-c) category). The content following [C++ STL](https://github.com/RedSkittleFox/cpp-learning-resources#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++](https://github.com/RedSkittleFox/cpp-learning-resources#basics-of-c) category. \n\n#### Purpose\nThis document is a collection of high quality c++ learning materials for both new and experienced c++ programmers.\n\n#### Contributing\nCreate either an [issue](https://github.com/RedSkittleFox/cpp-learning-resources/issues) 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. \n\n#### Comments and suggestions\nPlease leave your comments, thoughts and suggestions via [Issues](https://github.com/RedSkittleFox/cpp-learning-resources/issues). \n\n# Table of Contents\n\n* [Best learning resources for C++](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#best-learning-resources-for-c)\n* [Basics Of C++](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#basics-of-c)\n\n* [C++ STL](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#c-stl)\n    * [STL Containers](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#stl-containers)\n    * [STL Algorithms](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#stl-algorithms)\n    * [STL Utilities](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#stl-utilities)\n* [Advanced C++](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#advanced-c)\n    * [Constexpr](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#constexpr)\n    * [Functional](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#functional)\n    * [Time in C++](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#time-in-c)\n    * [Multithreading](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#multithreading)\n* [Type Related Programming](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#type-related-programming)\n   * [Templates](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#templates)\n   * [Concepts](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#concepts)\n   * [Type deduction](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#type-deduction)\n   * [SFINAE - Substitution Failure Is Not An Error](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#sfinae---substitution-failure-is-not-an-error)\n   * [Meta-programming](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#meta-programming)\n* [C++ Memory Management](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#c-memory-management)\n   * [Basics of memory management](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#basics-of-memory-management)\n   * [Garbage collection](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#garbage-collection)\n   * [Allocators](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#allocators)\n* [C++ Aplication Design](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#c-application-design)\n   * [C++ Object Oriented Design](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#c-object-oriented-design)\n      * [C++ Design Patterns](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#c-design-patterns)\n   * [C++ Data Oriented Design](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#c-data-oriented-design)\n* [C++ Programming Style](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#c-programming-style)\n   * [Generalities about C++ programming](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#generalities-about-c-programming)\n   * [Best practices for C++](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#best-practices-for-c)\n   * [Programing Guidelines](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#programing-guidelines)\n* [C++ Libraries](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#c-libraries)\n   * [Embeding different languages in C++](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#embeding-different-languages-in-c)\n   * [Custom container libraries for C++](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#custom-container-libraries-for-c)\n   * [raphical interfaces for C++](https://github.com/RedSkittleFox/cpp-learning-resources/blob/master/README.md#graphical-interfaces-for-c)\n\n\n# Learning sources\n\n- [cppreference.com](https://en.cppreference.com/w/)\n\n- [Code Blacksmith Youtube Channel](https://www.youtube.com/channel/UC1dkO571jGLzSJcsOE-ESZg)\n\n- [CppCon Youtube Channel](https://www.youtube.com/user/CppCon)\n\n- [isocpp.org](https://isocpp.org)\n\n- [CppCoreGuidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)\n\n- [ChiliTomatoNoodle Youtube Channel](https://www.youtube.com/c/ChiliTomatoNoodle)\n\n# Basics Of C++\n- [Beginner C++ Game Programming Tutorial Series](https://youtube.com/playlist?list=PLqCJpWy5FohcehaXlCIt8sVBHBFFRVWsx)\n~ Video Tutorial Series by ChiliTomatoNoodle\n\n- [C++ programming tutorial series](https://www.youtube.com/watch?v=SQHREey_Yuc\u0026list=PLfVsf4Bjg79Cu5MYkyJ-u4SyQmMhFeC1C)\n~ Video Tutorial Series by LearningLad\n\n- [C++ advanced programming tutorial series](https://www.youtube.com/playlist?list=PLE28375D4AC946CC3)\n~ Video Tutorial Series by Bo Qian\n\n- [learncpp.com](https://www.learncpp.com/)\n\n- [C++ Tutorial for Beginners - Full Course](https://www.youtube.com/watch?v=vLnPwxZdW4Y) \n~ Video Tutorial Series by freeCodeCamp.org\n\n# C++ STL\n\n### STL Containers\n\n- [Reference for all STL Containers](https://en.cppreference.com/w/cpp/container)\n\n- [STL Containers - Learn Modern C++](https://www.youtube.com/watch?v=fuI7UQ8dg1Q)\n~ Video Tutorial by Code Blacksmith\n\n- [How to write an STL compatible container](https://medium.com/@vgasparyan1995/how-to-write-an-stl-compatible-container-fc5b994462c6)\n~ Article by Vanand Gasparyan\n\n- [Writing your own STL container](https://stackoverflow.com/a/7759622/10266364)\n~ Question answer by Mooing Duck\n\n- [Why does the C++ STL not provide any “tree” containers?](https://stackoverflow.com/a/205985/10266364)\n~ Question Answer by Martin York\n\n- [Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step](https://www.youtube.com/watch?v=ncHmEUmJZf4)\n~ CppCon 2017 Talk by Matt Kulukundis \n\n- [Enough string_view to Hang Ourselves](https://youtu.be/xwP4YCP_0q0)\n~ CppCon 2018 Talk by Victor Ciura\n\n- [Customizing the Standard Containers](https://youtu.be/NyivAC3WE6g)\n~ CppCon 2017 Talk by Marshall Clow\n\n- [Implementing static_vector: How Hard Could it Be?](https://youtu.be/I8QJLGI0GOE)\n~ CppCon 2021 Talk by David Stone\n\n\n\n### STL Algorithms\n\n- [105 STL Algorithms in Less Than an Hour](https://www.youtube.com/watch?v=bXkWuUe9V2I)\n~ ACCU 2018 Talk by Jonathan Boccara\n\n- [STL Algorithms - why you should use them, and how to write your own](https://www.youtube.com/watch?v=h4Jl1fk3MkQ)\n~ CppCon 2016 Talk by Marshall Clow \n\n- [STL Algorithms in Action](https://www.youtube.com/watch?v=eidEEmGLQcU)\n~ CppCon 2016 Talk by Michael VanLoon \n\n- [Writing Standard Library Compliant Data Structures and Algorithms](https://youtu.be/fChDijocVec)\n~ CppCon 2018 Talk by Marc Gregoire \n\n- [C++17 Parallel Algorithms](https://youtu.be/Ve8cHE9LNfk)\n~ CppCon 2017 Talk by Dietmar Kühl \n\n- [Fantastic Algorithms and Where To Find Them](https://youtu.be/YA-nB2wjVcI)\n~ CppCon 2017 Talk by Nicholas Ormrod \n\n### STL Utilities\n\n- [tuple＜＞: What's New and How it Works](https://www.youtube.com/watch?v=JhgWFYfdIho)\n~ CppCon 2016 Talk by Stephan T. Lavavej\n\n\n- [How to Write Well-Behaved Value Wrappers](https://youtu.be/J4A2B9eexiw)\n~ CppCon 2018 Talk by Simon Brand\n\n- [Effective replacement of dynamic polymorphism with std::variant](https://youtu.be/gKbORJtnVu8)\n~ CppCon 2018 Talk by Mateusz Pusz\n\n# Advanced C++\n\n### Constexpr\n\n- [constexpr - Taking Constants to the Next Level](https://www.youtube.com/watch?v=4Vnd2I91s2c)\n~ Video Tutorial by Code Blacksmith\n\n- [constexpr: Introduction](https://www.youtube.com/watch?v=fZjYCQ8dzTc)\n~ CppCon 2015 Talk by Scott Schurr\n\n- [constexpr: Applications](https://www.youtube.com/watch?v=qO-9yiAOQqc)\n~ CppCon 2015 Talk by Scott Schurr \n\n### Functional\n\n- [functional: What's New, And Proper Usage](https://www.youtube.com/watch?v=zt7ThwVfap0)\n~ CppCon 2015 Talk by Stephan T. Lavavej\n\n### Time in C++\n\n- [A ＜chrono＞ Tutorial](https://www.youtube.com/watch?v=P32hvk8b13M)\n~ CppCon 2016 Talk by Howard Hinnant \n\n- [Benchmark Timer](https://www.youtube.com/watch?v=GV0JMHOpoEw)\n~ Video Tutorial by Code Blacksmith\n\n### Random\n\n- [What C++ Programmers Need to Know about Header ＜random＞](https://www.youtube.com/watch?v=6DPkyvkMkk8)\n~ CppCon 2016 Talk by Walter E. Brown \n\n### Multithreading\n\n- [What do you mean \"thread-safe\"?](https://www.youtube.com/watch?v=s5PCh_FaMfM)\n~ CppCon 2018 Talk by Geoffrey Romer\n\n- [Thread Synchronization Primitives](https://www.youtube.com/watch?v=n5Pst7CY2vo)\n~ Video Tutorial by Code Blacksmith\n\n- [Thread Pool](https://www.youtube.com/watch?v=eWTGtp3HXiw)\n~ Video Tutorial by Code Blacksmith\n\n- [Multithreaded Logger](https://www.youtube.com/watch?v=STQ3hMCTh-w)\n~ Video Tutorial by Code Blacksmith\n\n- [Memory Barriers](https://www.youtube.com/watch?v=qlkMbxUbKfw)\n~ Video Tutorial by Code Blacksmith\n\n- Multithreading is the answer. What is the question? [Part 1](https://www.youtube.com/watch?v=GNw3RXr-VJk)\n [Part 2](https://www.youtube.com/watch?v=sDLQWivf1-I)\n~ CppCon 2017 Talk by Ansel Sermersheim \n\n- [The Trap of std::async](https://www.youtube.com/watch?v=ad9wzKR7TAk)\n~ Video Tutorial by Code Blacksmith\n\n# Type related programming\n\n### Templates\n\n- [Templates in C++](https://www.youtube.com/watch?v=I-hZkUa9mIs)\n~ Video Tutorial by TheChernoProject\n\n- [Variadic Templates](https://www.youtube.com/watch?v=o1EvPhz6UNE)\n~ Video Tutorial by Jason Turner\n\n- [Variadic Templates in C++11 / C++14 - An Introduction](https://www.youtube.com/watch?v=R1G3P5SRXCw)\n~ CppCon 2015 Talk by Peter Sommerlad \n\n- [std::enable_if](https://en.cppreference.com/w/cpp/types/enable_if)\n\n- [Using Template Magic to Automatically Generate Hybrid CPU/GPU-Code](https://youtu.be/Xd4NVV-Uy0I)\n~ CppCon 2018 Talk by Elmar Westphal\n\n- [C++ Templates Revised](https://youtu.be/ULX_VTkMvf8)\n~ CppCon 2017 Talk by Nicolai Josuttis\n\n- [C++ Template Programming](https://www.3dgep.com/beginning-cpp-template-programming/)\n~ Article by Jeremiah\n\n### Concepts\n\n- [Concepts: The Future of Generic Programming (the future is here)](https://www.youtube.com/watch?v=HddFGPTAmtU)\n~ CppCon 2018 Talk by Bjarne Stroustrup\n\n- [Concepts in 60: Everything you need to know and nothing you don't](https://www.youtube.com/watch?v=ZeU6OPaGxwM)\n~ CppCon 2018 Talk by Andrew Sutton\n\n### Type deduction\n\n- [Type Deduction and Why You Care](https://www.youtube.com/watch?v=wQxj20X-tIU)\n~ CppCon 2014 Talk by Scott Meyers\n\n- [Type Traits - what are they and why should I use them?](https://www.youtube.com/watch?v=VvbTP_k_Df4)\n~ CppCon 2015 Talk by Marshall Clow\n\n- [Template Type Deduction](https://youtu.be/ps4G4L5V7WA)\n~ Video Tutorial by Code Blacksmith\n\n- [Class Template Argument Deduction for Everyone](https://www.youtube.com/watch?v=-H-ut6j1BYU)\n~ CppCon 2018 Talk by Stephan T. Lavavej \n\n- [Type Punning in C++17: Avoiding Pun-defined Behavior](https://youtu.be/sCjZuvtJd-k)\n~ CppCon 2017 Talk by Scott Shurr\n\n### SFINAE - Substitution Failure Is Not An Error\n- [SFINAE documentation](https://en.cppreference.com/w/cpp/language/sfinae)\n\n- [SFINAE introduction](https://jguegant.github.io/blogs/tech/sfinae-introduction.html)\n\n- [Check if type has a member method of given signature](https://stackoverflow.com/a/16824239/10266364)\n~ Question Answer by jrok\n\n- [Custom Overload Sets and Inline SFINAE for Truly Generic Interfaces](https://youtu.be/WBTNCYT20f0)\n~ CppCon 2018 Talk by Vincent Reverdy\n\n### Meta-programming\n\n- [Introduction to C++ Template Metaprogramming](https://www.youtube.com/watch?v=lrziylOWBT4)\n~ NDC Oslo 2016 Talk by Sasha Goldshtein \n\n- [Modern Template Metaprogramming:A Compendium,Part 1](https://www.youtube.com/watch?v=Am2is2QCvxY)\n~ CppCon 2014 Talk by Walter E.Brown Part 1\n\n- [Modern Template Metaprogramming:A Compendium,Part 2](https://www.youtube.com/watch?v=a0FliKwcwXE)\n~ CppCon 2014 Talk by Walter E.Brown Part 2\n\n# C++ Memory Management \n\n### Basics of memory management\n\n- [Modern Memory Management](https://www.youtube.com/watch?v=vvgKqoKa8Mg)\n~ Video Tutorial by Code Blacksmith\n\n- [std::launder - what is it?](https://www.youtube.com/watch?v=BneDZVf1EMw)\n~ Video Tutorial by Code Blacksmith\n\n- [Move Semantics Explained](https://www.youtube.com/watch?v=ruHw7E71zBw)\n~ Video Tutorial by Code Blacksmith\n\n- [Copy and Swap](https://www.youtube.com/watch?v=10wKJgrjN9M)\n~ Video Tutorial by Code Blacksmith\n\n- [“Want fast C++? Know your hardware!\"](https://www.youtube.com/watch?v=BP6NxVxDQIs)\n~ Lecture by Timur Doumler ( CppCon 2017 )\n\n### Garbage Collection\n\n- [GC FAQ](https://www.iecc.com/gclist/GC-faq.html) \n~ Document regarding garbage collection in C++\n\n### Allocators\n\n- [std::allocator Is to Allocation what std::vector Is to Vexation](https://www.youtube.com/watch?v=LIb3L4vKZ7U)\n~ CppCon 2015 Talk by Andrei Alexandrescu\n\n- [Custom Allocator Tutorial](https://www.youtube.com/watch?v=pP15kDeXJU0)\n~ Video Tutorial by Code Blacksmith\n\n- [How to Write a Custom Allocator](https://www.youtube.com/watch?v=kSWfushlvB8)\n~ CppCon 2017 Talk by Bob Steagall\n\n- [Efficient Object Pool](https://www.youtube.com/watch?v=37VhkrOiE8M)\n~ Video Tutorial by Code Blacksmith\n\n- [Local ('Arena') Memory Allocators (part 1)](https://www.youtube.com/watch?v=nZNd5FjSquk)\n~ CppCon 2017 Talk by John Lakos \n\n- [Local ('Arena') Memory Allocators (part 2)](https://www.youtube.com/watch?v=CFzuFNSpycI)\n~ CppCon 2017 Talk by John Lakos \n\n# C++ Error Handling\n\n- [C++ Exception Handling](https://www.tutorialspoint.com/cplusplus/cpp_exceptions_handling) \n~ Article on tutorialspoint.com\n\n- [Exception Safety](https://www.youtube.com/watch?v=X4TNDFlXzOo)\n~ Video Tutorial by Code Blacksmith\n\n- [std::exception](https://en.cppreference.com/w/cpp/error/exception)\n\n- [Custom C++ Exceptions for Beginners](http://peterforgacs.github.io/2017/06/25/Custom-C-Exceptions-For-Beginners/) \n~ Article by Peter Forgacs\n\n# C++ Application Design\n\n-[Game Programming from Scratch in C++] (https://guide.handmadehero.org/)\n~By Casey Muratori\n- [C++ in Huge AAA Games](https://youtu.be/qYN6eduU06s)\n~ CppCon 2014 Talk by Nicolas Fleury\n\n- [The C++ Execution Model](https://youtu.be/FJIn1YhPJJc)\n~ CppCon 2018 Talk by Adelstein Lelbach\n\n- [Game engine using STD C++ 11](https://www.youtube.com/watch?v=8AjRD6mU96s)\n~ CppCon 2016 Talk by Jason Jurecka\n\n- [Modern User Interfaces for C++](https://www.youtube.com/watch?v=RXTfC-35Nx8)\n~ CppCon 2015 Talk by Milian Wolff\n\n- [EA’s Secret Weapon: Packages and Modules](https://youtu.be/NlyDUQS8OcQ)\n~ CppCon 2017 Talk by Scott Wardle\n\n- [Naivety of Creating Cross-Platform, Modern C++ Libraries...](https://youtu.be/JPdohAomZD8)\n~ CppCon 2017 Talk by Jonathan Henson\n\n- [Modern C++ API Design (part 1 of 2)](https://youtu.be/xTdeZ4MxbKo)\n~ CppCon 2018 Talk by Titus Winters\n\n- [Modern C++ API Design (part 2 of 2)](https://youtu.be/tn7oVNrPM8I)\n~ CppCon 2018 Talk by Titus Winters\n\n- [Better Code: Human Interface](https://youtu.be/0WlJEz2wb8Y)\n~ CppCon 2018 Talk by Sean Parent\n\n- [Modern C++ Interfaces...](https://youtu.be/PFdWqa68LmA)\n~ CppCon 2017 Talk by Stephen Dewhurst\n\n- [Building C++ Modules](https://youtu.be/E8EbDcLQAoc)\n~ CppCon 2017 Talk by Boris Kolpackov\n\n### C++ Object Oriented Design\n\n- [Intro to the C++ Object Model](https://youtu.be/iLiDezv_Frk)\n~ CppCon 2015 Talk by Richard Powell\n\n- [Design Patterns and Modern C++](https://www.youtube.com/watch?v=j9arNRRoPe8)\n~ Video Tutorial by JetBrainsTV\n\n- [Multiple Inheritance problem in C++](https://www.youtube.com/watch?v=7APovvvftQs)\n~ Video Tutorial by Bo Qian\n\n- [Using Functional Programming Patterns...](https://youtu.be/nR2raX2-a0Q)\n~ CppCon 2017 Talk by Jeremy Demeule \u0026 Quentin Duval \u003c-\n\n#### C++ Design Patterns\n\n- [Singleton Design Pattern](https://www.youtube.com/watch?v=2SIpresDYVc)\n~ Video Tutorial by Code Blacksmith\n\n- [Strategy Design Pattern](https://www.youtube.com/watch?v=z84cggFUvCs)\n~ Video Tutorial by Code Blacksmith\n\n- [Builder Design Pattern](https://www.youtube.com/watch?v=s8S1X-p3TtI)\n~ Video Tutorial by Code Blacksmith\n\n- [Agent based class design](https://youtu.be/tNXyNa6kf4k)\n~ CppCon 2017 Talk by Odin Holmes\n\n- [Design Patterns for Low-Level Real-Time Rendering](https://youtu.be/mdPeXJ0eiGc)\n~ CppCon 2017 Talk by Nicolas Guillemot \u003c-\n\n### C++ Data Oriented Design \n\n- [Implementation of a component-based entity system in modern C++](https://youtu.be/NTWSeQtHZ9M)\n~ CppCon 2015 Talk By Vittorio Romeo \u003c-\n\n- [Data Driven Entity Component System in C++17](https://www.youtube.com/watch?v=tONOW7Luln8)\n~ Code Europe Autumn 2017 Talk K.Kisielewicz\n\n- [OOP Is Dead, Long Live Data-oriented Design](https://www.youtube.com/watch?v=yy8jQgmhbAU)\n~ CppCon 2018 Talk by Stoyan Nikolov\n\n# C++ Programming Style\n\n### Generalities about C++ programming\n\n- [Make Classes Great Again! (Using Concepts for Customization Points)](https://www.youtube.com/watch?v=WsUnnYEKPnI)\n~ CppCon 2017 Talk by Vinnie Falco\n\n- [Operator Overloading: History, Principles and Practice](https://youtu.be/zh4EgO13Etg)\n~ CppCom 2018 Talk by Ben Deane\n\n- [How to Write Effective Documentation for C++ Libraries...](https://youtu.be/YxmdCxX9dMk)\n~ CppCon 2017 Talk by Robert Ramey\n\n- [Dynamically Loaded Libraries Outside the Standard](https://youtu.be/-dxCaM4GOqs)\n~ CppCon 2021 Talk by Zhihao Yuan\n\n### Best practices for C++\n\n- [Readable C++](https://youtu.be/zUVQhcu32rg)\n~ CppCon 2016 Talk by Timur Doumler \u003c-\n\n- [Building Software Capital: How to write the highest quality code and why](https://youtu.be/ta3S8CRN2TM)\n~ CppCon 2016 Talk by David Sankel \u003c-\n\n- [Secure Coding Best Practices: Your First Line Is The Last Line Of Defense (1 of 2)](https://youtu.be/n4Yf2tBeAbE)\n~ CppCon 2018 Talk by Matthew Butler \u003c-\n\n- [Secure Coding Best Practices: Your First Line Is The Last Line Of Defense (2 of 2)](https://youtu.be/i0m0FBD-McY)\n~ CppCon 2018 Talk by Matthew Butler \u003c-\n\n- [Applied Best Practices](https://www.youtube.com/watch?v=DHOlsEd0eDE)\n~ CppCon 2018 Talk by Jason Turner \u003c-\n\n- [Practical Performance Practices](https://www.youtube.com/watch?v=uzF4u9KgUWI)\n~ CppCon 2016 Talk by Jason Turner  \u003c-\n\n- [Writing Good C++14... By Default](https://www.youtube.com/watch?v=hEx5DNLWGgA) \n~ CppCon 2015 Talk by Herb Sutter \u003c-\n\n- [Easy to Use, Hard to Misuse: Declarative Style in C++](https://www.youtube.com/watch?v=I52uPJSoAT4) \n~ CppCon 2018 Talk Ben Deane \u003c-\n\n### Programing Guidelines\n\n- [C++ `const` correctness guidelines](https://isocpp.org/wiki/faq/const-correctness)\n\n- [CppCoreGuidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)\n\n- [10 Core Guidelines You Need to Start Using Now](https://www.youtube.com/watch?time_continue=498\u0026v=XkDEzfpdcSg)\n~ CppCon 2017 Talk by Kate Gregory\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredskittlefox%2Fcpp-learning-resources","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredskittlefox%2Fcpp-learning-resources","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredskittlefox%2Fcpp-learning-resources/lists"}