Modern C++ Templates In Depth
Published 3/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.11 GB | Duration: 5h 15m
Published 3/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.11 GB | Duration: 5h 15m
Master Modern C++ Templates & Advanced Techniques for Efficient, Reusable & Generic Code
What you'll learn
Gain a comprehensive knowledge of why templates are essential in C++, including their benefits and use cases
Learn the foundational concepts of templates, including syntax and basic usage
Learn about argument deduction, instantiation, explicit template arguments, and default arguments
Explore non-type template parameters, overloading, and the instantiation process for function and class templates
Learn different ways to pass arguments, including by reference and forwarding reference
Stay updated with modern C++ standards, including alias templates, variadic templates, and template lambdas
Requirements
Basic C++ programming knowledge
Description
Welcome to a comprehensive course on Modern C++ Templates! This course is designed to provide a deep understanding of the changes and advancements in C++ template programming from C++11 to C++20. The course equips learners with the knowledge and skills to master modern template techniques.Learn about C++11 alias templates in two detailed lessons, covering how to simplify complex type declarations and enhance code readability. Explore extern templates and understand their role in reducing compilation times.Delve into variadic templates across five lessons, discussing their syntax, usage, and applications. These lessons provide the tools to create flexible and reusable code that can handle an arbitrary number of arguments. Following this, learn about the changes introduced in C++14 and C++17, including the powerful fold expressions and the auto non-type feature, further streamlining template programming.In the C++20 segment, learn about non-type template parameters (NTTP) and how they improve template flexibility. Explore template lambdas in three comprehensive lessons, learning to use them for more concise and expressive code. The course concludes with an exploration of the abbreviated auto feature, simplifying type declarations and improving code clarity.This course not only covers the theoretical aspects of modern C++ templates but also provides practical guidance on how to apply these techniques in real-world scenarios. It demonstrates the usage of using templates with examples from the standard library & other C++ libraries. Utilized templates to write more efficient, maintainable, and expressive code. By the end of this course, gain a thorough understanding of modern C++ template features and be able to apply them effectively in projects.
Overview
Section 1: Introduction
Lecture 1 Slide Deck
Lecture 2 Why Templates - I
Lecture 3 Why Templates - II
Lecture 4 Templates Introduction
Section 2: Function Templates
Lecture 5 Source Code
Lecture 6 Undecorate Names Batch File
Lecture 7 Function Templates
Lecture 8 Template Argument Deduction & Instantiation
Lecture 9 Explicit Template Arguments
Lecture 10 Default Template Arguments
Lecture 11 Argument Conversions
Lecture 12 Templates With Specifiers
Lecture 13 Non-Type Template Parameters
Lecture 14 Overloading Function Templates
Lecture 15 Explicit Specialization
Lecture 16 Overloading Revisited
Lecture 17 Template instantiation
Lecture 18 Explicit Instantiation Basics
Lecture 19 Explicit Instantiation Usage - I
Lecture 20 Explicit Instantiation Usage - II
Lecture 21 extern Templates
Lecture 22 Static Variables In Function Templates
Section 3: Class Templates
Lecture 23 Source Code
Lecture 24 Introduction to Class Templates
Lecture 25 Class Template Example - I
Lecture 26 Class Template Example - II
Lecture 27 Class Template Example - III
Lecture 28 Class Template Argument Deduction
Lecture 29 Class Template Instantiation
Lecture 30 extern Class Templates
Lecture 31 Static Members
Lecture 32 Explicit Specialization Of Member Functions
Lecture 33 Explicit Specialization of Class Templates - I
Lecture 34 Explicit Specialization of Class Templates - II
Lecture 35 Explicit Specialization of Class Templates - III
Lecture 36 Non-Type Template Arguments
Lecture 37 Partial Specialization - I
Lecture 38 Partial Specialization - II
Lecture 39 Partial Specialization - III
Lecture 40 Parameter Types - I
Lecture 41 Parameter Types - II
Lecture 42 Forwarding References
Section 4: Template Changes In C++11
Lecture 43 Source Code
Lecture 44 Modern C++ Changes Overview
Lecture 45 Right Angle Bracket
Lecture 46 Type Definitions
Lecture 47 Type Alias & Alias Template
Lecture 48 extern Templates
Lecture 49 Variadic Templates Example
Lecture 50 sizeof… Operator
Lecture 51 Variadic Classes
Lecture 52 Variadic Templates Applications
Section 5: Template Changes in C++14/17
Lecture 53 Source Code
Lecture 54 C++14 - Variable Template & Generic Lambda
Lecture 55 Compile-time if
Lecture 56 Fold Expressions
Lecture 57 auto Type Placeholder
Section 6: Template Changes in C++20
Lecture 58 Source Code
Lecture 59 Non-Type Template Parameters
Lecture 60 Template Parameters In Lambda Expressions - I
Lecture 61 Template Parameters In Lambda Expressions - II
Lecture 62 Template Parameters In Lambda Expressions - III
Lecture 63 Abbreviated auto
Lecture 64 BONUS LECTURE
C++ programmers looking to deepen their understanding of template programming,Students aiming to grasp the intricacies of templates as part of their coursework,Coders proficient in other languages who wish to transition to or strengthen their expertise in C++ by mastering templates,C++ professionals who design and implement complex systems and require in-depth knowledge of template-based design patterns and optimizations