Is there any possibility to force a template to be from a certain base class so that I can call the base class function?
template void SomeMan
Sure, you can combine type traits with SFINAE:
#include template typename std::enable_if::value, void>::type SomeManager::Add(T) { T->CallTsBaseClassFunction(); //... do other stuff }
Although I don't really see the benefit here.