Variadic Templates in C++11 / C++14 - An Introduction
summary
Covers concrete how‑tos: implements a variadic print_line using pack expansion and recursion with an explicit zero‑argument base case (required even if never called), demonstrates the overload‑resolution gotcha that produces surprising output during template instantiation, and shows correct use of std::forward. Builds a compile‑time FizzBuzz using make_index_sequence / index_sequence, tuples and a custom apply, verifies results with static_asserts, and shows variadic class templates, template‑template parameters and limitations of variadic lambdas.
AI-written summary · about
chapters (29)
- 0:00Cevelop
- 1:28C++ Varargs example
- 2:55C/C++ Varargs sucks
- 5:10variadic templates pre C++11
- 6:35"pseudo" variadic templates Overloads
- 7:03Reminder functions, templates, patterns
- 8:49Defining a variadic template function
- 10:22variadic template terminology
- 12:14Gotcha 1 of Variadic Templates
- 13:47Olve Maudal's pub quiz (10)
- 20:32What about variadic class templates?
- 21:46Simple stdutuple example
- 24:20Other variadic class templates?
- 27:20Example template class Sack
- 27:57Varying Sack's Container
- 28:21template template parameters
- 28:55template variadic template parameters
- 30:00template-template argument factory
- 32:15Function Overloading FizzBuzz
- 36:02FizzBuzzi numbers simple, but wrong
- 37:28stduenable if SFINAE Overload selection
- 42:38Testing the Sequence statically
- 45:49stduexperimentals apply
- 48:46Can we do with class templates as well?
- 50:57Class Template Specialization
- 51:17Variadic Class Templates: recurse through inheritance
- 52:18Specialize single number dispatch
- 55:47Create a whole sequence for testing
- 57:45Wrap up
related talks
43m“Variadic expansion in examples"
01h 27mC++20 Templates - the Next Level: Concepts and More
57mIntroduction to C++ Template Metaprogramming
01h 03mBack to Basics: Function and Class Templates
58mC++17 in Practice - The good and the ugly
01h 13mC++ Templates Revised
01h 00mConcepts in C++20: Revolution or Evolution
05mC++20 Lambdas: Familiar Template Syntax
