Interface Technology Basics  VST 3.7
SDK for developing VST plug-in
IPtr< I > Class Template Reference

IPtr - Smart pointer template class. More...

#include <smartpointer.h>

+ Inheritance diagram for IPtr< I >:

Public Member Functions

 IPtr (I *ptr, bool addRef=true)
 
 IPtr (const IPtr &)
 
template<class T >
 IPtr (const IPtr< T > &other)
 
 IPtr ()
 
 ~IPtr ()
 
I * operator= (I *ptr)
 
IPtroperator= (const IPtr &other)
 
template<class T >
IPtroperator= (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)
 

Static Public Member Functions

template<typename T >
static IPtr< T > adopt (T *obj) SMTG_NOEXCEPT
 

Protected Attributes

I * ptr
 

Detailed Description

template<class I>
class Steinberg::IPtr< I >

IPtr - Smart pointer template class.

  • can be used as an I* pointer
  • handles refCount of the interface
  • Usage example:
    IPtr<IPath> path (sharedPath);
    if (path)
    path->ascend ();

Constructor & Destructor Documentation

◆ IPtr() [1/5]

IPtr ( I *  ptr,
bool  addRef = true 
)
inline

◆ IPtr() [2/5]

IPtr ( const IPtr< I > &  )
inline

◆ IPtr() [3/5]

IPtr ( const IPtr< T > &  other)
inline

◆ IPtr() [4/5]

IPtr ( )
inline

◆ ~IPtr()

~IPtr ( )
inline

◆ IPtr() [5/5]

IPtr ( const IPtr< I > &  other)
inline

Member Function Documentation

◆ operator=() [1/4]

I * operator= ( I *  ptr)
inline

◆ operator=() [2/4]

IPtr& operator= ( const IPtr< I > &  other)
inline

◆ operator=() [3/4]

IPtr& operator= ( const IPtr< T > &  other)
inline

◆ operator I *()

operator I * ( ) const
inline

◆ operator->()

I* operator-> ( ) const
inline

◆ get()

I* get ( ) const
inline

◆ reset()

void reset ( I *  obj = nullptr)
inline

◆ take()

I* take ( )
inline

◆ adopt()

static IPtr<T> adopt ( T *  obj)
inlinestatic

◆ operator=() [4/4]

IPtr<I>& operator= ( const IPtr< I > &  _ptr)
inline

Member Data Documentation

◆ ptr

I* ptr
protected
Empty

Copyright ©2021 Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.