Interfaces or classes having a type parameter which is a subtype of the interface itself, in any language; also known as the "curiously recurring template pattern". It helps defining chaining methods in a hierarchy of classes, or typed cloning methods.
What are some practical uses for the "Curiously Recurring Template Pattern"? The "counted class" example commonly shown just isn't a …
c++ templates design-patterns crtp f-bounded-polymorphism