Introduction to C++ Template Metaprogramming - Sasha Goldshtein

technique in modern C++. First, TMP can be used as a precursor to C++17 Concepts, in order to check constraints and produce clear error messages when a template parameter doesn't adhere to its specified constraints. Second, TMP can be used to pick an algorithm implementation based on the template type provided -- thus enabling optimizations for specific types. Finally, TMP can be used to introspect C++ types at compile-time and generate compile-time constructs that save time or enable fully-compile-time computation. In this talk, we will review a collection of techniques and examples for using TMP in your libraries and application code. You are expected to understand basic template syntax and template specialisation, and we will build the rest as we go along. NDC Conferences https://ndcoslo.com https://ndcconferences.com

Template Metaprogramming - John Edwards of thatgamecompany
▶︎

Template Metaprogramming - John Edwards of thatgamecompany

Templates and Metaprogramming
▶︎

Templates and Metaprogramming

Keynote: After the AI Hype – What’s Real, and What’s Next - Richard Campbell - 2026
▶︎

Keynote: After the AI Hype – What’s Real, and What’s Next - Richard Campbell - 2026

From C++ Templates to C++ Concepts - Metaprogramming: an Amazing Journey - Alex Dathskovsky
▶︎

From C++ Templates to C++ Concepts - Metaprogramming: an Amazing Journey - Alex Dathskovsky

CppCon 2014: Walter E. Brown "Modern Template Metaprogramming: A Compendium, Part I"
▶︎

CppCon 2014: Walter E. Brown "Modern Template Metaprogramming: A Compendium, Part I"

Generic Locking in C++ -  Andrei Alexandrescu
▶︎

Generic Locking in C++ - Andrei Alexandrescu

Template Metaprogramming: Type Traits (part 1 of 2) - Jody Hagins - CppCon 2020
▶︎

Template Metaprogramming: Type Traits (part 1 of 2) - Jody Hagins - CppCon 2020

Tips for C Programming
▶︎

Tips for C Programming

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup
▶︎

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup

C++ Templates Revised - Nicolai Josuttis [ACCU 2018]
▶︎

C++ Templates Revised - Nicolai Josuttis [ACCU 2018]

How to Adopt Modern C++17 into Your C++ Code : Build 2018
▶︎

How to Adopt Modern C++17 into Your C++ Code : Build 2018

Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones
▶︎

Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

CppCon 2016: Arthur O'Dwyer “Template Normal Programming (part 1 of 2)”
▶︎

CppCon 2016: Arthur O'Dwyer “Template Normal Programming (part 1 of 2)”

Andrej Karpathy: From Vibe Coding to Agentic Engineering w/ Stephanie Zhan
▶︎

Andrej Karpathy: From Vibe Coding to Agentic Engineering w/ Stephanie Zhan

Your New Mental Model of constexpr - Jason Turner - CppCon 2021
▶︎

Your New Mental Model of constexpr - Jason Turner - CppCon 2021

Back to Basics: Function and Class Templates - Dan Saks - CppCon 2019
▶︎

Back to Basics: Function and Class Templates - Dan Saks - CppCon 2019

Above the Cloud: Building Data Centers in Space - Richard Campbell - NDC Copenhagen 2026
▶︎

Above the Cloud: Building Data Centers in Space - Richard Campbell - NDC Copenhagen 2026

Templates in C++
▶︎

Templates in C++

Spec-Driven Development: The Fast Track to 10x? - Jerry Nixon - NDC Sydney 2026
▶︎

Spec-Driven Development: The Fast Track to 10x? - Jerry Nixon - NDC Sydney 2026

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker
▶︎

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker