© 2026 Hashnode
In the previous chapters, we treated our TypePack primarily as a linear sequence—a list that can be sliced, grown, and flattened. However, in many metaprogramming scenarios, a parameter pack acts more like a Set. You might need to know if a specific ...

As we build more complex template systems, we often find ourselves with "packs within packs." This usually happens when merging multiple results from different metafunctions or dealing with recursive type generators. While a nested structure has its ...

In the previous chapters, we focused on "positional" operations: doing things based on indices and ranges. However, in real-world metaprogramming, we often care about what a type is, not just where it is. For example, you might want to strip all void...

Part 5: Refining the Pack — Deletion and Range Removal In the previous chapters, we focused on building and expanding our TypePack. However, effective type manipulation often requires surgical precision in removing unwanted elements. Whether you're s...

In the previous parts, we learned how to encapsulate a variadic pack and how to slice it into smaller pieces. However, a truly flexible meta-container must also be able to grow. In this article, we will implement the ability to merge multiple TypePac...

In the previous part, we learned how to measure a TypePack and pick a single element. However, when building complex template libraries, we often need more than just one type; we need to extract entire chunks of data. Whether you are stripping away m...

The Philosophy Python is "Executable Pseudocode." It prioritizes developer productivity over raw machine performance. However, a Senior Engineer knows how to peek under the hood to make it fly. 1. The Global Interpreter Lock (GIL) 🔒 For decades, th...

In the first part of this series, we introduced the TypePack as a container to "capture" variadic template arguments. However, a container is only useful if we can inspect its contents. In this article, we will implement two fundamental operations: q...

In modern C++, variadic templates allow us to work with an arbitrary number of template arguments. However, anyone who has delved deep into Template Metaprogramming (TMP) knows that "parameter packs" (the Ts... in a template) are quite elusive. They ...
