Template Base Class Collection

How to create a collection of a template base class? How to create a single collection for multiple similar interfaces? Based on Sean Parent talk "Inheritance Is The Base Class of Evil".

Substitution Failure is Not an Error – SFINAE

The 11th post in C++ meta programming series. What is SFINAE? How and When to use it? And when should we avoid using it?

Become a Compile-Time Coder

The 10th post in C++ meta programming series. How to use compile-time functions from C++11 to C++20? How to define user-defined compile-time types? What is constexpr and how does it tie up all of the above?

The Exact Solution for a Generic Problem – Part 2

The 9th post in C++ meta programming series. How to protect our solution from less experienced developers in variadic template development cases? Restrictions over variadic params from C++11 to C++20.

The Exact Solution for a Generic Problem – Part 1

The 8th post in C++ meta programming series. What is the problem with a generic solution? Why should we pay extra attention when we solve a problem in a generic way? And how to protect our solution from less experienced developers?

Templates Infinity Theory – From C++11 to C++20 – Part 2

The 7th post in C++ meta programming series. Learn about variadic templates in C++17- How does C++17 helps us handle them, when to use / don't use fold expressions, and what things we need to draw a close attention to when we use them?

Templates Infinity Theory – From C++11 to C++20 – Part 1

The 6th post in C++ meta programming series. Learn about variadic templates- How to use them, and about how to make the code more flexible and maintainable with them.

C++ – Partial / Explicit specialization

This is the 5th post in C++ meta programming series. Learn about explicit & partial template specializations in C++, and about the differences between them.

C++ templates – Beginners most common issue

Separation of templates functions/classes declarations from definitions always raise a common issue at the first time. Read about the reasons for this issue, and how to solve it.

Basic templates usage – Part 2

This is the third post in C++ meta programming series. Learn about basic non-type template parameters, template of templates, and passing functions as template parameters.