Make type in template with defined base
template<std::derived_from<UPrimitiveComponent> PrimitiveClass>
struct FPTAPushedEntryBase<UPrimitiveComponent>
now if you do something like struct FPTAPushedEntryStaticMesh : public FPTAPushedEntryBase<USceneComponent>
you will get a compiler error, because USceneComponent
is a parent of UPrimitiveComponent
.