29 #ifndef JUCE_OPTIONALSCOPEDPOINTER_H_INCLUDED
30 #define JUCE_OPTIONALSCOPEDPOINTER_H_INCLUDED
43 template <
class ObjectType>
59 : object (objectToHold), shouldDelete (takeOwnership)
72 : object (objectToTransferFrom.
release()),
73 shouldDelete (objectToTransferFrom.shouldDelete)
87 if (
object != objectToTransferFrom.object)
90 object = objectToTransferFrom.object;
93 shouldDelete = objectToTransferFrom.shouldDelete;
108 inline operator ObjectType*()
const noexcept {
return object; }
111 inline ObjectType*
get()
const noexcept {
return object; }
141 void set (ObjectType* newObject,
bool takeOwnership)
143 if (
object != newObject)
149 shouldDelete = takeOwnership;
155 set (newObject,
true);
161 set (newObject,
false);
175 object.swapWith (other.object);
176 std::swap (shouldDelete, other.shouldDelete);
186 #endif // JUCE_OPTIONALSCOPEDPOINTER_H_INCLUDED
ObjectType * operator->() const noexcept
Definition: juce_OptionalScopedPointer.h:117
#define noexcept
Definition: juce_CompilerSupport.h:141
OptionalScopedPointer(ObjectType *objectToHold, bool takeOwnership)
Definition: juce_OptionalScopedPointer.h:58
Definition: juce_OptionalScopedPointer.h:44
#define false
Definition: ordinals.h:83
void setOwned(ObjectType *newObject)
Definition: juce_OptionalScopedPointer.h:153
OptionalScopedPointer & operator=(OptionalScopedPointer &objectToTransferFrom)
Definition: juce_OptionalScopedPointer.h:85
void setNonOwned(ObjectType *newObject)
Definition: juce_OptionalScopedPointer.h:159
OptionalScopedPointer(OptionalScopedPointer &objectToTransferFrom)
Definition: juce_OptionalScopedPointer.h:71
Definition: juce_ScopedPointer.h:70
ObjectType * release() noexcept
Definition: juce_OptionalScopedPointer.h:123
ObjectType & operator*() const noexcept
Definition: juce_OptionalScopedPointer.h:114
bool willDeleteObject() const noexcept
Definition: juce_OptionalScopedPointer.h:167
void swapWith(OptionalScopedPointer< ObjectType > &other) noexcept
Definition: juce_OptionalScopedPointer.h:173
void set(ObjectType *newObject, bool takeOwnership)
Definition: juce_OptionalScopedPointer.h:141
void clear()
Definition: juce_OptionalScopedPointer.h:128
~OptionalScopedPointer()
Definition: juce_OptionalScopedPointer.h:101
OptionalScopedPointer()
Definition: juce_OptionalScopedPointer.h:49