pma::makeScoped

Syntactic sugar for creating instances wrapped in a [ScopedPtr](API\Plugins\RigLogicLib\pma\ScopedPtr). @note The default behavior is to rely on the [New](API\Plugins\RigLogicLib\pma\New) / [Delete](API\Plugins\RigLogicLib\pma\Delete) pair 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 dedicated [FactoryCreate](API\Plugins\RigLogicLib\pma\FactoryCreate) / [FactoryDestroy](API\Plugins\RigLogicLib\pma\FactoryDestroy) pair of lifetime managers. To change the default behavior in order to utilize a specific lifetime manager pair, specialize the [DefaultInstanceCreator](API\Plugins\RigLogicLib\pma\DefaultInstanceCreator) and [DefaultInstanceDestroyer](API\Plugins\RigLogicLib\pma\DefaultInstanceDestroyer) traits for the types that need different handling. Alternately, it's also possible to pass a custom creator / destroyer on each invocation.

Windows
MacOS
Linux

References

Module

RigLogicLib

Header

/Engine/Plugins/Animation/RigLogic/Source/RigLogicLib/Public/pma/ScopedPtr.h

Include

#include "pma/ScopedPtr.h"

Syntax

namespace pma
{
    template<class T, class TCreator, class TDestroyer, typename... Args, typename Base>
    ScopedPtr< Base, TDestroyer > pma::makeScoped
    (
        Args &&... args
    )
}

Remarks

Syntactic sugar for creating instances wrapped in a ScopedPtr. @note The default behavior is to rely on the New / Delete pair 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 dedicated FactoryCreate / FactoryDestroy pair of lifetime managers. To change the default behavior in order to utilize a specific lifetime manager pair, specialize the DefaultInstanceCreator and DefaultInstanceDestroyer traits for the types that need different handling. Alternately, it's also possible to pass a custom creator / destroyer on each invocation.

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss