|
| Ref () noexcept=default |
| Constructor. Initializes object pointer to nullptr.
|
|
| Ref (std::nullptr_t) noexcept |
| Initializes object pointer to nullptr.
|
|
| Ref (T *ptr) noexcept |
| Initializes object pointer with ptr and retains a reference. More...
|
|
| Ref (const Ref &other) |
| Initializes object pointer with other and retains a reference. More...
|
|
template<class D , typename = typename std::enable_if<std::is_convertible<D*, T*>::value>::type> |
| Ref (const Ref< D > &other) |
| Initializes object pointer with other and retains a reference. More...
|
|
| Ref (Ref &&other) noexcept |
| Constructs Ref by moving other's resource to the new Ref instance. Leaves other Ref empty. Reference count of the resource stays unchanged. This operation does not affect other Ref instances managing the same resource, if any, they continue to manage the resource with reference count unchanged. More...
|
|
template<class D , typename = typename std::enable_if<std::is_convertible<D*, T*>::value>::type> |
| Ref (Ref< D > &&other) noexcept |
| Constructs Ref by moving other's resource to the new Ref instance. Leaves other Ref empty. Reference count of the resource stays unchanged. This operation does not affect other Ref instances managing the same resource, if any, they continue to manage the resource with reference count unchanged. More...
|
|
| ~Ref () noexcept |
| Releases reference being held (if any).
|
|
T * | operator-> () const noexcept |
| Access pointer. More...
|
|
T ** | getInitReference () noexcept |
| Access pointer for initialization. More...
|
|
bool | operator== (const Ref &other) const noexcept |
| Check if two refs are the same. More...
|
|
bool | operator!= (const Ref &other) const noexcept |
| Check if two refs are not the same. More...
|
|
Ref & | operator= (const Ref &other) noexcept |
| Assign a strong reference. More...
|
|
template<class D , typename = typename std::enable_if<std::is_convertible<D*, T*>::value>::type> |
Ref & | operator= (const Ref< D > &other) noexcept |
| Assign a strong reference. More...
|
|
Ref & | operator= (Ref &&other) noexcept |
| Moves other's resource to this Ref instance. Leaves other Ref empty. Reference count of the resource stays unchanged. This operation does not affect other Ref instances managing the same resource, if any, they continue to manage the resource with reference count unchanged. More...
|
|
template<class D , typename = typename std::enable_if<std::is_convertible<D*, T*>::value>::type> |
Ref & | operator= (Ref< D > &&other) noexcept |
| Moves other's resource to this Ref instance. Leaves other Ref empty. Reference count of the resource stays unchanged. This operation does not affect other Ref instances managing the same resource, if any, they continue to manage the resource with reference count unchanged. More...
|
|
Ref & | operator= (T *ptr) noexcept |
| Assign a raw pointer. More...
|
|
Ref & | operator= (std::nullptr_t) noexcept |
| Assign a nullptr_t. More...
|
|
Ref & | assign (T *ptr) noexcept |
| Assign an object. Presumes shared ownership, increases reference count. More...
|
|
Ref & | acquire (T *ptr) noexcept |
| Acquire ownership of the object. More...
|
|
template<class D , typename = typename std::enable_if<std::is_convertible<D*, T*>::value>::type> |
Ref & | move (Ref< D > &&other) noexcept |
| Moves other's resource to this Ref instance. Leaves other Ref empty. Reference count of the resource stays unchanged. This operation does not affect other Ref instances managing the same resource, if any, they continue to manage the resource with reference count unchanged. More...
|
|
Ref & | make_ref (T *ptr) noexcept |
| Create ref without acquiring ownership. More...
|
|
T * | reset () noexcept |
| Reset reference counted object and assign nullptr to the pointer.
|
|
template<typename S > |
Ref< S > | as () const noexcept |
| Make smart reference with relative type. More...
|
|
| RefBase () noexcept=default |
| Initializes object pointer to nullptr.
|
|
| RefBase (T *ptr) noexcept |
| Initializes object pointer with ptr. More...
|
|
| operator T * () const noexcept |
| Get raw object pointer. More...
|
|
T & | operator* () const noexcept |
| Dereference operator. More...
|
|
| operator bool () const noexcept |
| Implicit cast to bool. More...
|
|
bool | operator== (const RefBase &other) const noexcept |
| Check if two refs are the same. More...
|
|
bool | operator!= (const RefBase &other) const noexcept |
| Check if two refs are not the same. More...
|
|
bool | isNull () const noexcept |
| Check for nullptr. More...
|
|
bool | isExpired () const noexcept |
| Check is object is dead. More...
|
|
bool | isUnique () const noexcept |
| Check if object has only one strong reference. More...
|
|
T * | get () const noexcept |
| Get current raw object pointer. More...
|
|
void | set (T *ptr) noexcept |
| Replace object pointer without any checks or reference management. More...
|
|
template<typename T>
struct fsdk::Ref< T >
Smart pointer for reference counted objects.
Automatically calls retain/release and provides safety assertions.
- Template Parameters
-