This class is deprecated. More...
#include <juce_ScopedPointer.h>
Public Member Functions | |
ScopedPointer () noexcept | |
Creates a ScopedPointer containing a null pointer. More... | |
ScopedPointer (decltype(nullptr)) noexcept | |
Creates a ScopedPointer containing a null pointer. More... | |
ScopedPointer (ObjectType *objectToTakePossessionOf) noexcept | |
Creates a ScopedPointer that owns the specified object. More... | |
ScopedPointer (ScopedPointer &objectToTransferFrom) noexcept | |
Creates a ScopedPointer that takes its pointer from another ScopedPointer. More... | |
ScopedPointer (ScopedPointer &&other) noexcept | |
Take ownership of another ScopedPointer. More... | |
~ScopedPointer () | |
Destructor. More... | |
ObjectType * | createCopy () const |
If the pointer is non-null, this will attempt to return a new copy of the object that is pointed to. More... | |
ObjectType * | get () const noexcept |
Returns the object that this ScopedPointer refers to. More... | |
operator ObjectType * () const noexcept | |
Returns the object that this ScopedPointer refers to. More... | |
ObjectType & | operator* () const noexcept |
Returns the object that this ScopedPointer refers to. More... | |
ObjectType * | operator-> () const noexcept |
Lets you access methods and properties of the object that this ScopedPointer refers to. More... | |
ScopedPointer & | operator= (ScopedPointer &objectToTransferFrom) |
Changes this ScopedPointer to point to a new object. More... | |
ScopedPointer & | operator= (ObjectType *newObjectToTakePossessionOf) |
Changes this ScopedPointer to point to a new object. More... | |
ScopedPointer & | operator= (ScopedPointer &&other) noexcept |
Take ownership of another ScopedPointer. More... | |
ObjectType * | release () noexcept |
Detaches and returns the current object from this ScopedPointer without deleting it. More... | |
void | reset () |
Clears this pointer, deleting the object it points to if there is one. More... | |
void | reset (ObjectType *newObject) |
Sets this pointer to a new object, deleting the old object that it was previously pointing to if there was one. More... | |
void | reset (ScopedPointer &newObject) |
Sets this pointer to a new object, deleting the old object that it was previously pointing to if there was one. More... | |
void | swapWith (ScopedPointer< ObjectType > &other) noexcept |
Swaps this object with that of another ScopedPointer. More... | |
Private Member Functions | |
ScopedPointer (const ScopedPointer &)=delete | |
const ScopedPointer * | getAddress () const noexcept |
ScopedPointer & | operator= (const ScopedPointer &)=delete |
Private Attributes | |
ObjectType * | object = nullptr |
This class is deprecated.
You should use std::unique_ptr instead.
A ScopedPointer holds a pointer that is automatically deleted when the ScopedPointer goes out of scope.
Once a pointer has been passed to a ScopedPointer, it will make sure that the pointer gets deleted when the ScopedPointer is deleted. Using the ScopedPointer on the stack or as member variables is a good way to use RAII to avoid accidentally leaking dynamically created objects.
A ScopedPointer can be used in pretty much the same way that you'd use a normal pointer to an object. If you use the assignment operator to assign a different object to a ScopedPointer, the old one will be automatically deleted.
Important note: The class is designed to hold a pointer to an object, NOT to an array! It calls delete on its payload, not delete[], so do not give it an array to hold! For that kind of purpose, you should be using HeapBlock or Array instead.
A const ScopedPointer is guaranteed not to lose ownership of its object or change the object to which it points during its lifetime. This means that making a copy of a const ScopedPointer is impossible, as that would involve the new copy taking ownership from the old one.
If you need to get a pointer out of a ScopedPointer without it being deleted, you can use the release() method.
{Core}
|
inlinenoexcept |
Creates a ScopedPointer containing a null pointer.
Referenced by juce::ScopedPointer< juce::Component >::getAddress().
|
inlinenoexcept |
Creates a ScopedPointer containing a null pointer.
|
inlinenoexcept |
Creates a ScopedPointer that owns the specified object.
|
inlinenoexcept |
Creates a ScopedPointer that takes its pointer from another ScopedPointer.
Because a pointer can only belong to one ScopedPointer, this transfers the pointer from the other object to this one, and the other object is reset to be a null pointer.
|
inline |
Destructor.
If the ScopedPointer currently refers to an object, it'll be deleted.
|
inlinenoexcept |
Take ownership of another ScopedPointer.
|
privatedelete |
|
inline |
If the pointer is non-null, this will attempt to return a new copy of the object that is pointed to.
If the pointer is null, this will safely return a nullptr.
|
inlinenoexcept |
Returns the object that this ScopedPointer refers to.
Referenced by juce::operator!=(), and juce::operator==().
|
inlineprivatenoexcept |
Referenced by juce::ScopedPointer< juce::Component >::operator=().
|
inlinenoexcept |
Returns the object that this ScopedPointer refers to.
References juce::ScopedPointer< ObjectType >::object.
|
inlinenoexcept |
Returns the object that this ScopedPointer refers to.
|
inlinenoexcept |
Lets you access methods and properties of the object that this ScopedPointer refers to.
|
inline |
Changes this ScopedPointer to point to a new object.
Because a pointer can only belong to one ScopedPointer, this transfers the pointer from the other object to this one, and the other object is reset to be a null pointer.
If this ScopedPointer already points to an object, that object will first be deleted.
Referenced by juce::ScopedPointer< juce::Component >::getAddress().
|
inline |
Changes this ScopedPointer to point to a new object.
If this ScopedPointer already points to an object, that object will first be deleted. The pointer that you pass in may be a nullptr.
|
inlinenoexcept |
Take ownership of another ScopedPointer.
|
privatedelete |
|
inlinenoexcept |
Detaches and returns the current object from this ScopedPointer without deleting it.
This will return the current object, and set the ScopedPointer to a null pointer.
Referenced by juce::ScopedPointer< juce::Component >::operator=(), and juce::ScopedPointer< juce::Component >::reset().
|
inline |
Clears this pointer, deleting the object it points to if there is one.
Referenced by juce::ScopedPointer< juce::Component >::operator=(), juce::ScopedPointer< juce::Component >::reset(), and juce::ScopedPointer< juce::Component >::~ScopedPointer().
|
inline |
Sets this pointer to a new object, deleting the old object that it was previously pointing to if there was one.
|
inline |
Sets this pointer to a new object, deleting the old object that it was previously pointing to if there was one.
|
inlinenoexcept |
Swaps this object with that of another ScopedPointer.
The two objects simply exchange their pointers.
|
private |
Referenced by juce::ScopedPointer< juce::Component >::get(), juce::ScopedPointer< ObjectType >::operator ObjectType *(), juce::ScopedPointer< juce::Component >::operator*(), juce::ScopedPointer< juce::Component >::operator->(), juce::ScopedPointer< juce::Component >::operator=(), juce::ScopedPointer< juce::Component >::release(), and juce::ScopedPointer< juce::Component >::reset().