C++26 Reflection: Type Erasure sin fricción con rjk::duck
Beautiful Type Erasure with C++26 Reflection
rjk::duck aprovecha la reflexión de C++26 para generar vtables y envoltorios de llamada automáticamente, eliminando el código repetitivo de bibliotecas como Boost.TypeErasure o Folly.Poly. Con una sola cabecera, ofrece semántica de propiedad y no propiedad, composición de interfaces y adaptadores. El artículo explica técnicas como la generación de tags, la creación de vtables y la resolución de sobrecargas mediante overload sets generados en tiempo de compilación. Actualmente solo compatible con GCC usando -std=c++26 -freflection.
En lugar de intentar reproducir manualmente la resolución de sobrecargas de C++, generamos un overload_set invocable y simplemente dejamos que el lenguaje haga el trabajo.