Syntactic type to define a pointer that must be a child of the owning object.  
 More...
 | 
|   | child_ptr ()=default | 
|   | Default constructor is exposed for RTTR but not for the user.  
  | 
|   | 
| 
  | child_ptr (const TThisType &other) | 
|   | 
| 
  | child_ptr (TThisType &&other)=default | 
|   | 
|   | child_ptr (const database_object &owner) | 
|   | Construct a new Child Ptr object with an owner.  
  | 
|   | 
|   | child_ptr (sbk_id id) | 
|   | Construct a new child_ptr that points to the ID.  
  | 
|   | 
| 
TThisType &  | operator= (typename database_ptr< TObject >::TIdentifierType id) | 
|   | 
| 
TThisType &  | operator= (typename database_ptr< TObject >::TObjectPtr object) | 
|   | 
| 
TThisType &  | operator= (const TThisType &other) | 
|   | 
| 
void  | setID (typename database_ptr< TObject >::TIdentifierType id=0) | 
|   | 
| 
void  | reset (typename database_ptr< TObject >::TObjectPtr object=nullptr) | 
|   | 
| 
  | database_ptr () | 
|   | Creates an empty and null LazyPtr. 
  | 
|   | 
| 
  | database_ptr (const TThisType &other)=default | 
|   | 
| 
  | database_ptr (TThisType &&other)=default | 
|   | 
|   | database_ptr (sbk_id id) | 
|   | Creates a LazyPtr that can lookup its object pointer after construction.  
  | 
|   | 
|   | database_ptr (const TObjectShared &object) | 
|   | Create a valid LazyPtr.  
  | 
|   | 
|   | database_ptr (const TObjectPtr &object) | 
|   | Create a valid LazyPtr.  
  | 
|   | 
|   | database_ptr (std::nullptr_t) | 
|   | Create an empty and null LazyPtr.  
  | 
|   | 
| 
auto  | id () const noexcept -> sbk_id | 
|   | Get ID of the referenced object. 
  | 
|   | 
| 
auto  | shared () const noexcept -> TObjectShared | 
|   | 
| 
auto  | weak () const noexcept -> TObjectWeak | 
|   | 
| 
auto  | raw () const noexcept -> TObjectPtr | 
|   | Get raw pointer of the referenced object. 
  | 
|   | 
| 
auto  | lookup_raw () const noexcept -> TObjectPtr | 
|   | 
| 
auto  | has_id () const noexcept -> bool | 
|   | Returns true if we hold a valid ID and can search for an object at runtime. 
  | 
|   | 
| 
auto  | null () const noexcept -> bool | 
|   | Returns true if the object pointer is not set. 
  | 
|   | 
| 
auto  | pending () const noexcept -> bool | 
|   | Returns true if we hold an ID but haven't found the live object to point to yet. 
  | 
|   | 
| 
auto  | stale () const noexcept -> bool | 
|   | Returns true if we previously referenced an object that has been destroyed. 
  | 
|   | 
| 
auto  | valid () const noexcept -> bool | 
|   | Returns true if we hold an ID and a valid pointer to the object. 
  | 
|   | 
| auto  | lookup () const noexcept -> bool | 
|   | Find the live object referenced by the ID and store it.  
  | 
|   | 
| 
auto  | reset (TObjectPtr object=nullptr) -> void | 
|   | Clear all references. 
  | 
|   | 
| 
TThisType &  | operator= (TObjectShared object) | 
|   | 
| TThisType &  | operator= (TObjectPtr object) | 
|   | Assign this LazyPtr to a new object, potentially destroying the current object if we're acting as a UniquePtr.  
  | 
|   | 
| 
TThisType &  | operator= (const TThisType &other) | 
|   | 
| 
TThisType &  | operator= (const TThisType &&other) | 
|   | 
| 
  | operator bool () const | 
|   | Returns true if this LazyPtr references a valid object. 
  | 
|   | 
| 
bool  | operator! () const | 
|   | Returns true if this LazyPtr is invalid. 
  | 
|   | 
| TObjectPtr  | operator-> () const | 
|   | Access the raw object.  
  | 
|   | 
template<typename TObject>
class sbk::core::child_ptr< TObject >
Syntactic type to define a pointer that must be a child of the owning object.