Interface Technology Basics  VST 3.6.14
SDK for developing VST Plug-in
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
IPtr< T > Class Template Reference

IPtr - Smart pointer template class. More...

#include <smartpointer.h>

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<typename T>
class Steinberg::IPtr< T >

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

Member Function Documentation

I * operator= ( I *  ptr)
inline
IPtr& operator= ( const IPtr< T > &  other)
inline
IPtr& operator= ( const IPtr< T > &  other)
inline
operator I * ( ) const
inline
I* operator-> ( ) const
inline
I* get ( ) const
inline
void reset ( I *  obj = nullptr)
inline
I* take ( )
inline
static IPtr<T> adopt ( T *  obj)
inlinestatic
IPtr<I>& operator= ( const IPtr< I > &  _ptr)
inline

Member Data Documentation

I* ptr
protected
Empty

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