Я хочу вызвать специализированную шаблонную функцию, используя указатель на ее базовый тип. Я не уверен, если это возможно, поэтому я открыт для предложений и / или альтернатив. Вот пример моей ситуации:
class CBase {};
class CDerivedClass : public CBase {};
template<class T>
int func<T>(T &x) { ... };
template<>
int func<CDerivedClass>(CDerivedClass &x) { ... };
У меня есть другая функция, которая управляет списком указателей CBase, а затем вызывает функцию func ().
void doStuff()
{
CBase *foo[10] = { ...... };
for (int i = 0; i < 10; ++i)
func(*foo[i]);
}
Есть ли способ получить производный тип, чтобы вызывался func (CDerivedClass &)?