This is the documentation for Enlighten.
class Geo GeoRefPtr
template<typename, typename>
class Geo::GeoRefPtr
└>D
A value type to take ownership of a raw object allocated on the heap and track a reference count between multiple instances of this class.
The raw object is destroyed when the last reference is released. Virtually identical to std::shared_ptr, but with policy-based destruction semantics.
Functions
Name | Description |
---|---|
~GeoRefPtr() | Destructor - Delete the internal object. |
Count() | How many pointers share this resource? |
DecrementRef() | Handle reduction of the reference count. |
GeoRefPtr(T *) | Take ownership of the raw ptr. Explicit so that you don't unknowingly change ownership. |
GeoRefPtr(GeoRefPtr &&) | Move constructor. |
GeoRefPtr(const GeoRefPtr< T, D > &) | Increase ownership of the payload of other GeoRefPtr. |
GeoRefPtr(const GeoRefPtr< TOther, DOther > &) | Increase ownership of the payload of other GeoRefPtr, given a different contained type Theoretically could write a destruction policy that accepted matches to other policies, but none implemented to date. |
GetPtr() | Explicitely return the contained type. |
IncrementRef() | Handle increase of the reference count. |
operator bool_type() | Is the object valid? |
operator GeoRefPtr< TOther, DOther >() | Convert to GeoRefPtr of compatible type. |
operator!=(const GeoRefPtr &) | Equivalence/comparison tests. |
operator*() | Allow dereferencing of the contained type. |
operator[](Geo::s32) | Allow array referencing of the contained type. |
operator<(const GeoRefPtr &) | Equivalence/comparison tests. |
operator=(const GeoRefPtr< T, D > &) | Support assignment (modifying other object) |
operator=(GeoRefPtr &&) | Move assignment operator. |
operator==(const GeoRefPtr &) | Equivalence/comparison tests. |
operator>(const GeoRefPtr &) | Equivalence/comparison tests. |
operator->() | Access members of the owned object. |
Reset(T *) | Hold new object, reducing count of current (possibly deleting) |
Unique() | Is the object unique? |
Geo::GeoRefPtr< T, D >::~GeoRefPtr
public: ~GeoRefPtr()
Destructor - Delete the internal object.
Geo::s32 Geo::GeoRefPtr< T, D >::Count
public: Geo::s32 Count() const
How many pointers share this resource?
void Geo::GeoRefPtr< T, D >::DecrementRef
public: void DecrementRef()
Handle reduction of the reference count.
Geo::GeoRefPtr< T, D >::GeoRefPtr
public: GeoRefPtr
(
T * ptr
)
Take ownership of the raw ptr. Explicit so that you don't unknowingly change ownership.
Geo::GeoRefPtr< T, D >::GeoRefPtr
public: GeoRefPtr
(
GeoRefPtr && rhs
)
Move constructor.
Geo::GeoRefPtr< T, D >::GeoRefPtr
public: GeoRefPtr
(
const GeoRefPtr< T, D > & rhs
)
Increase ownership of the payload of other GeoRefPtr.
Inheritance from the destruction policy ensures that you cannot assign between GeoRefPtr of different policies, whilst allowing assignment to GeoRefPtr to base types.
Geo::GeoRefPtr< T, D >::GeoRefPtr
public: GeoRefPtr
(
const GeoRefPtr< TOther, DOther > & rhs
)
Increase ownership of the payload of other GeoRefPtr, given a different contained type Theoretically could write a destruction policy that accepted matches to other policies, but none implemented to date.
T* Geo::GeoRefPtr< T, D >::GetPtr
public: T * GetPtr() const
Explicitely return the contained type.
RefCount* Geo::GeoRefPtr< T, D >::IncrementRef
public: RefCount * IncrementRef() const
Handle increase of the reference count.
Geo::GeoRefPtr< T, D >::operator bool_type
public: operator bool_type() const
Is the object valid?
Geo::GeoRefPtr< T, D >::operator GeoRefPtr< TOther, DOther >
public: operator GeoRefPtr< TOther, DOther >()
Convert to GeoRefPtr of compatible type.
bool Geo::GeoRefPtr< T, D >::operator!=
public: bool operator!=
(
const GeoRefPtr & rhs
) const
Equivalence/comparison tests.
T& Geo::GeoRefPtr< T, D >::operator*
public: T & operator*() const
Allow dereferencing of the contained type.
T& Geo::GeoRefPtr< T, D >::operator[]
public: T & operator[]
(
Geo::s32 idx
) const
Allow array referencing of the contained type.
bool Geo::GeoRefPtr< T, D >::operator<
public: bool operator<
(
const GeoRefPtr & rhs
) const
Equivalence/comparison tests.
GeoRefPtr<T,D>& Geo::GeoRefPtr< T, D >::operator=
public: GeoRefPtr< T, D > & operator=
(
const GeoRefPtr< T, D > & rhs
)
Support assignment (modifying other object)
GeoRefPtr& Geo::GeoRefPtr< T, D >::operator=
public: GeoRefPtr & operator=
(
GeoRefPtr && obj
)
Move assignment operator.
bool Geo::GeoRefPtr< T, D >::operator==
public: bool operator==
(
const GeoRefPtr & rhs
) const
Equivalence/comparison tests.
bool Geo::GeoRefPtr< T, D >::operator>
public: bool operator>
(
const GeoRefPtr & rhs
) const
Equivalence/comparison tests.
T* Geo::GeoRefPtr< T, D >::operator->
public: T * operator->() const
Access members of the owned object.
void Geo::GeoRefPtr< T, D >::Reset
public: void Reset
(
T * ptr
)
Hold new object, reducing count of current (possibly deleting)
bool Geo::GeoRefPtr< T, D >::Unique
public: bool Unique() const
Is the object unique?