Krita Source Code Documentation
Loading...
Searching...
No Matches
KisPinnedSharedPtr< T > Class Template Reference

#include <kis_pinned_shared_ptr.h>

+ Inheritance diagram for KisPinnedSharedPtr< T >:

Classes

class  NotConvertibleToT
 

Public Member Functions

 KisPinnedSharedPtr ()
 
template<typename X >
 KisPinnedSharedPtr (const KisSharedPtr< X > &other)
 
template<typename X >
 KisPinnedSharedPtr (const KisWeakSharedPtr< X > &other)
 
 KisPinnedSharedPtr (T *other)
 
 operator RestrictedBool () const
 
bool operator! () const
 
- Public Member Functions inherited from KisSharedPtr< T >
void attach (T *p)
 
void clear ()
 
const T * constData () const
 
T * data ()
 
const T * data () const
 
bool isNull () const
 
 KisSharedPtr ()
 
 KisSharedPtr (const KisSharedPtr< T > &o)
 
 KisSharedPtr (const KisWeakSharedPtr< T > &o)
 
 KisSharedPtr (T *p)
 
 operator const T * () const
 
template<class T2 >
 operator KisSharedPtr< T2 > () const
 
bool operator!= (const KisSharedPtr &o) const
 
bool operator!= (const T *p) const
 
T & operator* ()
 
const T & operator* () const
 
T * operator-> ()
 
const T * operator-> () const
 
KisSharedPtroperator= (const KisSharedPtr &o)
 
KisSharedPtr< T > & operator= (T *p)
 
bool operator== (const KisSharedPtr &o) const
 
bool operator== (const T *p) const
 
 ~KisSharedPtr ()
 

Private Types

typedef KisSharedPtr< T > BaseClass
 
typedef NotConvertibleToTRestrictedBool
 

Private Member Functions

 operator const T * () const
 

Additional Inherited Members

- Public Types inherited from KisSharedPtr< T >
using element_type = T
 
using weak_type = KisWeakSharedPtr<T>
 
- Static Public Member Functions inherited from KisSharedPtr< T >
static bool deref (const KisSharedPtr< T > *sp, T *t)
 
static void ref (const KisSharedPtr< T > *sp, T *t)
 

Detailed Description

template<typename T>
class KisPinnedSharedPtr< T >

A special type of KisSharedPtr that doesn't support conversion into raw pointer. You cannot convert it into raw pointer and cannot accidentally delete it. It is done with a hiding KisSharedPtr's conversion routine and substituting is with a custom one.

Definition at line 19 of file kis_pinned_shared_ptr.h.

Member Typedef Documentation

◆ BaseClass

template<typename T >
typedef KisSharedPtr<T> KisPinnedSharedPtr< T >::BaseClass
private

Definition at line 21 of file kis_pinned_shared_ptr.h.

◆ RestrictedBool

template<typename T >
typedef NotConvertibleToT* KisPinnedSharedPtr< T >::RestrictedBool
private

Definition at line 23 of file kis_pinned_shared_ptr.h.

Constructor & Destructor Documentation

◆ KisPinnedSharedPtr() [1/4]

template<typename T >
KisPinnedSharedPtr< T >::KisPinnedSharedPtr ( )
inline

Definition at line 25 of file kis_pinned_shared_ptr.h.

26 {
27 }

◆ KisPinnedSharedPtr() [2/4]

template<typename T >
KisPinnedSharedPtr< T >::KisPinnedSharedPtr ( T * other)
inline

Definition at line 29 of file kis_pinned_shared_ptr.h.

30 : BaseClass(other)
31 {
32 }
KisSharedPtr< T > BaseClass

◆ KisPinnedSharedPtr() [3/4]

template<typename T >
template<typename X >
KisPinnedSharedPtr< T >::KisPinnedSharedPtr ( const KisWeakSharedPtr< X > & other)
inline

Definition at line 35 of file kis_pinned_shared_ptr.h.

36 : BaseClass(other)
37 {
38 }

◆ KisPinnedSharedPtr() [4/4]

template<typename T >
template<typename X >
KisPinnedSharedPtr< T >::KisPinnedSharedPtr ( const KisSharedPtr< X > & other)
inline

Definition at line 42 of file kis_pinned_shared_ptr.h.

43 : BaseClass(other)
44 {
45 }

Member Function Documentation

◆ operator const T *()

template<typename T >
KisPinnedSharedPtr< T >::operator const T * ( ) const
explicitprivate

◆ operator RestrictedBool()

template<typename T >
KisPinnedSharedPtr< T >::operator RestrictedBool ( ) const
inline

Definition at line 48 of file kis_pinned_shared_ptr.h.

49 {
50 return this->isNull() ? 0 : reinterpret_cast<NotConvertibleToT*>(1);
51 }
bool isNull() const

References KisSharedPtr< T >::isNull().

◆ operator!()

template<typename T >
bool KisPinnedSharedPtr< T >::operator! ( ) const
inline

Definition at line 53 of file kis_pinned_shared_ptr.h.

54 {
55 return this->isNull();
56 }

References KisSharedPtr< T >::isNull().


The documentation for this class was generated from the following file: