Who Should Take this Course?

In this lesson, we'll look at the learning outcomes for this course.

This course is designed for users who want to explore more exciting and advanced features of C++ and learn how things can be done using the Generic Programming approach. We’ll learn about the basics of templates in the first chapter including function templates, class templates, and parameters passed to templates along with specialization.

We’ll learn about the techniques and details of the templates which include extensive knowledge of friends, fold expressions, and variadic templates. These techniques include automatic return type deduction, template metaprogramming, type traits, and constexpr.

Moving on to the different design approaches, we’ll learn static vs dynamic polymorphism, CRTP, expression templates, and idioms and patterns for templates.

In the end, we’ll peek into the bright future of C++: C++20. Concepts in C++20 will add significant improvements to templates.

Let’s have a look at the course roadmap:


Let’s start with function templates.