Push-based vs Pull-based Customization
Summary
An in-depth look at push-based vs pull-based customization in C++ meta-programming. The post compares pull-based annotations that rely on partial specializations with push-based annotations that inject code at definition time, discusses their trade-offs, and presents concrete examples for formatting and structured bindings. It also explains the 'point of instantiation' problem, issues with template definition timing, and possible future directions like universal template parameters and annotation-driven injection.