What are you trying to do now, why you looking on APIs? CreateDefaultSubobject should create object on creation, you need to do it in constructor, same as component. But im not 100% sure this other classes then components.
There no such thing as “ue4 c++” you working with normal C++, templates are supported, but UHT won’t like template on UObject as reflection system does not support templates at all.
So moving one step back, you want to create preset parameters for object to be made for a object that you can set in property panel? Maybe consider making those parameters contained in a struct and pass it on spawn, whenever you try to do it.
Sure you probably will need “factory” for it but it not big deal, not to mention it’s common practice in UE4. Also you don’t need to make “Blueprint Library” all it takes is static function on any class, “Blueprint Library” classes are either for static functions that don’t fit to any other class or to control types that blueprint can’t directly call (non-UObject or struct functions)