Interface Technology Basics VST 3.7
SDK for developing VST plug-in
|
OPtr - "owning" smart pointer used for newly created FObjects. More...
#include <smartpointer.h>
Public Member Functions | |
OPtr (I *p) | |
OPtr (const IPtr< I > &p) | |
OPtr (const OPtr< I > &p) | |
OPtr () | |
I * | operator= (I *_ptr) |
Public Member Functions inherited from IPtr< I > | |
IPtr (I *ptr, bool addRef=true) | |
IPtr (const IPtr &) | |
template<class T > | |
IPtr (const IPtr< T > &other) | |
IPtr () | |
~IPtr () | |
I * | operator= (I *ptr) |
IPtr & | operator= (const IPtr &other) |
template<class T > | |
IPtr & | operator= (const IPtr< T > &other) |
operator I* () const | |
I * | operator-> () const |
I * | get () const |
void | reset (I *obj=nullptr) |
I * | take () SMTG_NOEXCEPT |
template<class I > | |
IPtr (const IPtr< I > &other) | |
template<class I > | |
IPtr< I > & | operator= (const IPtr< I > &_ptr) |
Additional Inherited Members | |
Static Public Member Functions inherited from IPtr< I > | |
template<typename T > | |
static IPtr< T > | adopt (T *obj) SMTG_NOEXCEPT |
Protected Attributes inherited from IPtr< I > | |
I * | ptr |
OPtr - "owning" smart pointer used for newly created FObjects.
FUnknown implementations are supposed to have a refCount of 1 right after creation. So using an IPtr on newly created objects would lead to a leak. Instead the OPtr can be used in this case.
Example:
The assignment operator takes ownership of a new object and releases the old. So its safe to write:
This is the difference to using an IPtr with addRef=false.
This will lead to a leak!
|
inline |
|
inline |
|
inline |