20#if SMTG_CPP11_STDLIBSUPPORT
71 inline operator I* ()
const {
return ptr; }
74 inline I*
get ()
const {
return ptr; }
76#if SMTG_CPP11_STDLIBSUPPORT
87 ptr = movePtr.take ();
97 ptr = movePtr.take ();
102 inline void reset (I* obj =
nullptr)
116 template <
typename T>
176 operator= (_ptr.
ptr);
219 if (_ptr != this->
ptr)
222 this->
ptr->release ();
258#if SMTG_CPP11_STDLIBSUPPORT
274 friend struct Detail::Adopt;
286 friend struct Detail::Adopt;
298 friend struct Detail::Adopt;
306 template <
typename T>
307 static IPtr<T> adopt (Shared<T>& ref)
313 template <
typename T>
314 static IPtr<T> adopt (Owned<T>& ref)
322 template <
typename T>
323 static T* adopt (Used<T>& ref)
328 template <
template <
typename>
class OwnerType,
typename T>
329 static OwnerType<T> toOwnerType (T* obj)
344IPtr<T> adopt (Shared<T>& ref) {
return Detail::Adopt::adopt (ref); }
347IPtr<T> adopt (Shared<T>&& ref) {
return Detail::Adopt::adopt (ref); }
354IPtr<T> adopt (Owned<T>& ref) {
return Detail::Adopt::adopt (ref); }
357IPtr<T> adopt (Owned<T>&& ref) {
return Detail::Adopt::adopt (ref); }
364T* adopt (Used<T>& ref) {
return Detail::Adopt::adopt (ref); }
367T* adopt (Used<T>&& ref) {
return Detail::Adopt::adopt (ref); }
371Owned<T> toOwned (T* obj) {
return Detail::Adopt::toOwnerType<Owned> (obj); }
375Shared<T> toShared (T* obj) {
return Detail::Adopt::toOwnerType<Shared> (obj); }
379Used<T> toUsed (T* obj) {
return Detail::Adopt::toOwnerType<Used> (obj); }
Definition smartpointer.h:44
void reset(I *obj=nullptr)
Definition smartpointer.h:102
~IPtr()
Definition smartpointer.h:148
Steinberg::FUnknown * ptr
Definition smartpointer.h:121
I * get() const
Definition smartpointer.h:74
I * take() SMTG_NOEXCEPT
Definition smartpointer.h:109
I * operator->() const
Definition smartpointer.h:72
static IPtr< T > adopt(T *obj) SMTG_NOEXCEPT
Definition smartpointer.h:117
IPtr()
Definition smartpointer.h:142
I * operator=(I *ptr)
Definition smartpointer.h:159
IPtr(I *ptr, bool addRef=true)
Definition smartpointer.h:126
IPtr(const IPtr< T > &other)
Definition smartpointer.h:51
OPtr(I *p)
Definition smartpointer.h:213
OPtr(const OPtr< I > &p)
Definition smartpointer.h:215
I * operator=(I *_ptr)
Definition smartpointer.h:217
OPtr()
Definition smartpointer.h:216
OPtr(const IPtr< I > &p)
Definition smartpointer.h:214
float out
Definition lilv_test.c:1461
Definition baseiids.cpp:43
IPtr< I > shared(I *p)
Definition smartpointer.h:253
IPtr< I > owned(I *p)
Definition smartpointer.h:241
#define false
Definition ordinals.h:83
uch * p
Definition crypt.c:594