|
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>
Inheritance diagram for OPtr< I >: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 |