> A second possible use case: > > class C(T): T{ > // some declarations > } > Now you really want that template to be instantiable with T being either > an abstract or a concrete class. Anything else is bound to become > extremely annoying. Could you expand on this case a bit? I'm not sure I follow the point one way or another.