![]() |
Ultralight C++ API 1.3.0
|
#include <Ultralight/RefPtr.h>
A nullable smart pointer.
This smart pointer automatically manages the lifetime of a RefCounted object. The managed instance may be NULL.
Public Types | |
| typedef T *RefPtr::* | UnspecifiedBoolType |
Public Member Functions | |
| constexpr | RefPtr () |
| Construct a NULL ref-pointer. | |
| RefPtr (std::nullptr_t) | |
| Construct a NULL ref-pointer. | |
| RefPtr (T *other) | |
| Construct from a pointer. | |
| RefPtr (const RefPtr &other) | |
| Copy constructor. | |
| template<typename U > | |
| RefPtr (const RefPtr< U > &other) | |
| Copy constructor with internal type conversion. | |
| RefPtr (RefPtr &&other) | |
| Move constructor. | |
| template<typename U > | |
| RefPtr (RefPtr< U > &&other) | |
| Move constructor. | |
| ~RefPtr () | |
| Destroy RefPtr (wll decrement ref-count by one) | |
| T * | get () const |
| Get a pointer to wrapped object. | |
| T * | LeakRef () |
| T & | operator* () const |
| T * | operator-> () const |
| bool | operator! () const |
| operator UnspecifiedBoolType () const | |
| RefPtr & | operator= (const RefPtr &) |
| RefPtr & | operator= (T *) |
| RefPtr & | operator= (std::nullptr_t) |
| template<typename U > | |
| RefPtr & | operator= (const RefPtr< U > &) |
| RefPtr & | operator= (RefPtr &&) |
| template<typename U > | |
| RefPtr & | operator= (RefPtr< U > &&) |
| void | reset () |
| Releases the ownership of the managed object, if any. | |
| void | reset (T *obj) |
| Replaces the managed object with another. | |
| void | swap (RefPtr &ptr) |
| Exchanges the stored pointer values and the ownerships of *this and ptr. | |
| template<typename U > | |
| RefPtr< T > & | operator= (const RefPtr< U > &other) |
| template<typename U > | |
| RefPtr< T > & | operator= (RefPtr< U > &&other) |
Protected Types | |
| enum | AdoptTag { Adopt } |
Protected Member Functions | |
| RefPtr (T &object, AdoptTag) | |
Friends | |
| bool | operator== (const RefPtr &a, const RefPtr &b) |
| bool | operator!= (const RefPtr &a, const RefPtr &b) |
| bool | operator< (const RefPtr &a, const RefPtr &b) |
| RefPtr | AdoptRef (T &) |
| Helper for wrapping new objects with the RefPtr smart pointer. | |
| typedef T*RefPtr::* ultralight::RefPtr< T >::UnspecifiedBoolType |
|
protected |
|
inlineconstexpr |
Construct a NULL ref-pointer.
|
inline |
Construct a NULL ref-pointer.
|
inline |
Construct from a pointer.
(Will increment ref-count by one)
|
inline |
Copy constructor.
|
inline |
Copy constructor with internal type conversion.
|
inline |
Move constructor.
|
inline |
Move constructor.
|
inline |
Destroy RefPtr (wll decrement ref-count by one)
|
inlineprotected |
|
inline |
Get a pointer to wrapped object.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| RefPtr< T > & ultralight::RefPtr< T >::operator= | ( | const RefPtr< T > & | other | ) |
| RefPtr & ultralight::RefPtr< T >::operator= | ( | const RefPtr< U > & | ) |
| RefPtr< T > & ultralight::RefPtr< T >::operator= | ( | const RefPtr< U > & | other | ) |
| RefPtr< T > & ultralight::RefPtr< T >::operator= | ( | RefPtr< T > && | other | ) |
| RefPtr & ultralight::RefPtr< T >::operator= | ( | RefPtr< U > && | ) |
| RefPtr< T > & ultralight::RefPtr< T >::operator= | ( | RefPtr< U > && | other | ) |
| RefPtr< T > & ultralight::RefPtr< T >::operator= | ( | std::nullptr_t | ) |
| RefPtr< T > & ultralight::RefPtr< T >::operator= | ( | T * | object | ) |
| void ultralight::RefPtr< T >::reset |
Releases the ownership of the managed object, if any.
| void ultralight::RefPtr< T >::reset | ( | T * | obj | ) |
Replaces the managed object with another.
| void ultralight::RefPtr< T >::swap | ( | RefPtr< T > & | ptr | ) |
Exchanges the stored pointer values and the ownerships of *this and ptr.
Reference counts, if any, are not adjusted.
|
friend |
Helper for wrapping new objects with the RefPtr smart pointer.
All ref-counted object are created with an initial ref-count of '1'. The AdoptRef() helper returns a RefPtr<T> without calling AddRef(). This is used for creating new objects, like so:
RefPtr<Object> ref = AdoptRef(*new ObjectImpl());