| 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 >:
 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 |