В C ++ нет такого понятия, как «универсальный класс».У вас есть шаблон , а шаблон - это не класс.Скорее, экземпляры шаблона становятся классами.Однако это совершенно разные, отдельные и несвязанные классы, поэтому Derived<A>
и Derived<B>
не имеют ничего общего друг с другом.
Кроме того, то, что вы делаете, прекрасно.В любом данном шаблоне экземпляр Derived<T>
, T
является действительным классом (предполагая, что является на самом деле классом, а не, скажем, массивом или int
)и вы можете извлечь из этого.