42template <
class ObjectType>
107 inline operator ObjectType*()
const noexcept {
return object.get(); }
178 std::swap (shouldDelete,
other.shouldDelete);
184 bool shouldDelete =
false;
Holds a resizable array of primitive or copy-by-value objects.
void swapWith(OtherArrayType &otherArray) noexcept
This swaps the contents of this array with those of another array.
Holds a pointer to an object which can optionally be deleted when this pointer goes out of scope.
void reset()
Resets this pointer to null, possibly deleting the object that it holds, if it has ownership of it.
OptionalScopedPointer(ObjectType *objectToHold, bool takeOwnership)
Creates an OptionalScopedPointer to point to a given object, and specifying whether the OptionalScope...
void setNonOwned(ObjectType *newObject)
Makes this OptionalScopedPointer point at a new object, but will not take ownership of that object.
void set(ObjectType *newObject, bool takeOwnership)
Makes this OptionalScopedPointer point at a new object, specifying whether the OptionalScopedPointer ...
void clear()
Does the same thing as reset().
OptionalScopedPointer()=default
Creates an empty OptionalScopedPointer.
ObjectType * get() const noexcept
Returns the object that this pointer is managing.
~OptionalScopedPointer()
The destructor may or may not delete the object that is being held, depending on the takeOwnership fl...
ObjectType & operator*() const noexcept
Returns the object that this pointer is managing.
OptionalScopedPointer & operator=(OptionalScopedPointer &objectToTransferFrom)
Takes ownership of the object that another OptionalScopedPointer holds.
ObjectType * release() noexcept
Removes the current object from this OptionalScopedPointer without deleting it.
void setOwned(ObjectType *newObject)
Makes this OptionalScopedPointer point at a new object, and take ownership of that object.
OptionalScopedPointer(OptionalScopedPointer &objectToTransferFrom)
Takes ownership of the object that another OptionalScopedPointer holds.
void swapWith(OptionalScopedPointer< ObjectType > &other) noexcept
Swaps this object with another OptionalScopedPointer.
bool willDeleteObject() const noexcept
Returns true if the target object will be deleted when this pointer object is deleted.
ObjectType * operator->() const noexcept
Lets you access methods and properties of the object that this pointer is holding.