Léxico TI › Programación › CRTP

CRTP

Programación Svenska → Actualizado: 2026-10-05

El truco de C++ donde una clase hereda de una plantilla instanciada con la clase misma: class D : public Base<D>. Polimorfismo sin vtable.

James Coplien nombró el patrón en 1995 después de verlo aparecer una y otra vez en código real. El punto es que la clase base conoce su propio tipo derivado en tiempo de compilación y por lo tanto puede llamar sus métodos sin indirección. El compilador lo expande a método directo, cero overhead de runtime.

Casos de uso: optimizaciones de rendimiento crítico (financiero, gráficos), serialización genérica, políticas mixtas (mixins). Complicado de leer si no lo esperabas. Boost.Asio y muchas librerías modernas de C++ lo usan ampliamente. No tienes que entenderlo para usarlo, pero es útil reconocerlo.

← Volver al léxico