36 template <
typename TYPE,
typename DELETER = deleter<TYPE>>
38 template<
typename,
typename>
friend class ownerPtr;
72 template<
typename U,
typename DEL = DELETER::
template rebound_deleter<U>>
82 template<
typename U,
typename DEL = DELETER::
template rebound_deleter<U>>
92 template<
typename U,
typename DEL = DELETER::
template rebound_deleter<U>>
115 template <
typename T,
typename DEL,
typename...
Args>
118 template <
typename T,
typename DEL,
typename...
Args>
137 template <
typename T,
typename DEL = deleter<T>,
typename... Args>
156 template <
typename T,
typename DEL = deleter<T[]>,
typename... Args>
163 template<
typename TYPE,
typename DELETER>
169 template<
typename TYPE,
typename DELETER>
171 this->operator=(std::move(
other));
174 template<
typename TYPE,
typename DELETER>
179 this->removeStrongRef();
187 template <
typename TYPE,
typename DELETER>
188 template<
typename U,
typename DEL>
192 static_cast<U*
>(this->
unlock())
196 template <
typename TYPE,
typename DELETER>
197 template<
typename U,
typename DEL>
200 auto p =
dynamic_cast<U*
>(this->
get());
208 template <
typename TYPE,
typename DELETER>
209 template<
typename U,
typename DEL>
217 template<
typename TYPE,
typename DELETER>
222 template<
typename TYPE,
typename DELETER>
227 template<
typename TYPE,
typename DELETER>
232 template<
typename T,
typename DEL,
typename ...
Args>
237 template<
typename T,
typename DEL,
typename ...
Args>
Base class for reference-counted smart pointers.
Base smart pointer with reference counting.
Definition autoPtr.h:68
static refCount< TYPE, DELETER > * newRefCount(TYPE *p=nullptr)
Create new reference counter.
Definition autoPtr.h:581
void addStrongRef() const
Increment strong reference count.
Definition autoPtr.h:513
TYPE * releasePtr() noexcept
Release ownership of the managed pointer.
Definition autoPtr.h:545
atomic< refCountBase * > ref_count
Reference counter object.
Definition autoPtr.h:71
void removeStrongRef() const
Decrement strong reference count.
Definition autoPtr.h:529
const TYPE * get() const
Get managed pointer const version.
Definition autoPtr.h:629
Unique ownership smart pointer with move semantics.
Definition ownerPtr.h:37
friend ownerPtr< T, DEL > makeOwnerPtrArray(u_integer size, Args &&... args)
Creates a new ownerPtr managing a dynamically allocated array.
Definition ownerPtr.h:238
~ownerPtr() override
Destructor releases owned resources.
Definition ownerPtr.h:228
friend ownerPtr< T, DEL > makeOwnerPtr(Args &&... args)
Creates a new ownerPtr managing a dynamically allocated object.
Definition ownerPtr.h:233
ownerPtr< U, DEL > staticCastMoveTo()
Performs static cast and transfers ownership.
Definition ownerPtr.h:190
TYPE * unlock()
Release ownership of managed object.
Definition ownerPtr.h:218
ownerPtr(const ownerPtr &other)=delete
Copy construction prohibited.
ownerPtr & operator=(const ownerPtr &other)=delete
Copy assignment prohibited.
ownerPtr< U, DEL > dynamicCastMoveTo()
Performs dynamic cast and transfers ownership.
Definition ownerPtr.h:199
ownerPtr< U, DEL > constCastMoveTo()
Performs const cast and transfers ownership.
Definition ownerPtr.h:211
std::string className() const override
Get class name identifier.
Definition ownerPtr.h:223
Default deleters for resource management.
std::uint32_t u_integer
32-bit unsigned integer type for sizes and indexes
Definition config.h:263
Main namespace for the project Original.
Definition algorithms.h:21
ownerPtr< T, DEL > makeOwnerPtr(Args &&... args)
Creates a new ownerPtr managing a dynamically allocated object.
Definition ownerPtr.h:233
ownerPtr< T, DEL > makeOwnerPtrArray(u_integer size, Args &&... args)
Creates a new ownerPtr managing a dynamically allocated array.
Definition ownerPtr.h:238