CRTP (curiously recurring template pattern)
Në shqip përdoret i njëjti emër.
ShpjegimiSQ
Te CRTP, një klasë trashëgon nga një template që merr vetë klasën si parametër: class Rreth : public Forme<Rreth>. Jep polimorfizëm pa vtable — i shpejtë, por më i vështirë për t'u lexuar.
EnglishEN
In CRTP, a class inherits from a template taking the class itself as a parameter: class Circle : public Shape<Circle>. It gives polymorphism without a vtable — fast, but harder to read.
Si ta mendosh
Si një pasqyrë që e njeh fytyrën tënde para se të shikosh.
Lexoje në anglisht
Like a mirror that knows your face before you look.
Shembull kodicpp
template <class D> struct Forme {
double siperfaqja() { return static_cast<D*>(this)->llogarit(); }
};
struct Katror : Forme<Katror> { double llogarit() { return 4; } };