Good day all.
I am having trouble figuring out the following:

1) When to use template base class, derived non template class - which design scenario
2) When to use non - template base class, with derived template class - really who would do this
3) When to use template base class with derived template class... - now this I know some of the answers too - like compile time polymorphism, some design patterns like abstract factory, etc... What would be nice some more concrete use cases you have used or aspire to use template base with template derived class.


Final question - I am really good in understanding non template classes even through virtual inheritance, but for some reason am not that much familiar with general differences, advantages / dissadvantages when using template inheritance vs non template inheritance. Besides performance impact, what other rule of the thumb do you use if you decide to use template inheritance over non template....