TAccessPtr is used to determine whether an object has been destructed or not. It is useful when an object cannot be wrapped in a TSharedPtr. A TAccessPtr is functionally similar to a TWeakPtr, but it cannot pin the object. In order to determine whether an object as accessible, the TAccessPtr executes a TFunctions<> which returns object. If a nullptr is returned, then the object is not accessible.