Template Basics (C++11-14)
C++ templates are the core mechanism of generic programming. This part moves you from "knowing how to use templates" to the perspective of "wanting to write libraries and being able to read STL sources": we thoroughly cover the template compilation model, specialization and partial specialization, non-type parameters, two-phase name lookup, hidden friends, alias templates, and CRTP, and finish with a fixed_vector<T, N> capstone project that welds the previous nine pieces together.
The companion runnable examples live at code/examples/vol4/vol1-basics-cpp11-14/: the four with the most reuse value (fixed_vector, CRTP static polymorphism, the Comparable mixin, and hand-written type_traits), where every file runs directly with g++ -std=c++20 xxx.cpp.