Tag: CRTP
Aquí tengo un caso simple de CRTP: “`C++ #include <cstddef> #include <utility> template <typename impl=""> class base { constexpr static size_t impl_num = Impl::num; }; template <typename impl=""> class deriv : public base<><impl>> { friend class base<><impl>>; <pre><code>constexpr static size_t num = Impl::num_in; </code></pre> }; class actual_impl { public: constexpr . . . Read more
Estoy trabajando en Patrones de Plantilla Recurrente Curiosa (CRTP) y quiero generar diagramas de colaboración para las clases derivadas que tengo. Cuando ejecuto doxygen en mi proyecto, obtengo diagramas como estos: Aquí he limitado la profundidad máxima del gráfico. Pero todavía no me gusta la repetición de la rama izquierda. . . . Read more
Parece que podríamos introducir cierto tipo de polimorfismo en tiempo de compilación utilizando CRTP, sin embargo me pregunto cómo esto puede ser mejor que las buenas y viejas funciones virtuales. Al final, tenemos que llamar a static_cast<const T*>(this)->implementation(); que es un nivel de indirección exactamente como lo hace una tabla . . . Read more