Sure, you can combine type traits with SFINAE:
#include <type_traits>
template <class T>
typename std::enable_if<std::is_base_of<your_base_class, T>::value, void>::type
SomeManager::Add(T)
{
T->CallTsBaseClassFunction();
//... do other stuff
}
Although I don't really see the benefit here.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…