/Engine/Plugins/Animation/RigLogic/Source/RigLogicLib/Public/pma/ScopedPtr.h
The default behavior is to rely on theNew/Deletepair of lifetime managers, because it's sensible to do so. However, because a significant portion of our abstractions follow the convention of exposing a create / destroy pair of factory functions (where create always returns a raw pointer), there also exists a dedicatedFactoryCreate/FactoryDestroypair of lifetime managers. To change the default behavior in order to utilize a specific lifetime manager pair, specialize theDefaultInstanceCreatorandDefaultInstanceDestroyertraits for the types that need different handling. Alternately, it's also possible to pass a custom creator / destroyer on each invocation.
namespace pma { template<class T, class TCreator, class TDestroyer, typename... Args, typename Base> [ScopedPtr](API\Plugins\RigLogicLib\pma\ScopedPtr)< Base, TDestroyer > pma::makeScoped ( Args &&... args ) }