Interface Technology Basics VST 3.6.11 SDK for developing VST Plug-in

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Member Functions | Protected Attributes | List of all members
IPtr< T > Class Template Reference
Basic Interfaces

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)
IPtr & | operator= (const IPtr &other)
template<class T >
IPtr & | operator= (const IPtr< T > &other)
| operator I * () const
I * | operator-> () const
I * | get () const
template<class I >
| IPtr (const IPtr< I > &other)
template<class I >
IPtr< I > & | operator= (const IPtr< I > &_ptr)

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

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

## Member Data Documentation

I* ptr
| protected

Empty

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