C++26 Reflection: Type Erasure ohne Boilerplate

Beautiful Type Erasure with C++26 Reflection

Type-Erasure-Lösungen wie `std::any` oder `std::function` sind simpel, aber für komplexe Schnittstellen braucht es bisher hunderte Zeilen Code oder schwergewichtige Bibliotheken. `rjk::duck` nutzt die neue C++26-Reflection, um diesen Aufwand drastisch zu reduzieren. Ein einziges Header-File erzeugt aus einer annotierten Trait-Struktur automatisch die passende Vtable, inklusive Overload-Auflösung und Unterstützung für Operatoren, Komposition und Erweiterungsmethoden. Der Artikel zeigt, wie Tags generiert, Vtables erzeugt und Aufrufe über generierte `overload_set`s vermittelt werden – und wie Reflection dabei hilft, den Code klein und performant zu halten.

Einfach die Schnittstelle einmal deklarieren und den Rest von deinen bereits geschriebenen Definitionen erledigen lassen.

Mehr von diesem Tag

2026-07-14