Мне нужно написать шаблон, который генерирует некоторый код в зависимости от того, является ли параметр шаблона экземпляром некоторого класса.Шаблон может быть сгенерирован для всех классов, но только в том случае, если класс является подклассом другого класса, код должен выполняться.
Проблема в том, что функция, которая должна быть реализована, не получает ни одного экземпляра класса, поэтомуединственное, что известно, это имя класса.Так что это невозможно сделать с помощью dynamic_cast, так как он требует экземпляра объекта
template<T>
class A
{
void somefunction(void)
{
if (T instanceof Foo) then ...
else ...
}
}
, добавляя некоторые пояснения
class X: public Foo {};
class Y {};
class A<X> {} // special logic is generated
class A<Y> {} // special logic is NOT generated