11 #ifndef __UI_XPTR_H_INCLUDED__ 
   12 #define __UI_XPTR_H_INCLUDED__ 
   54     operator=(
UI_XPtr<U> &&other) noexcept;
 
   60     UI_XPtr &operator=(std::nullptr_t) noexcept
 
   70     explicit operator bool() const noexcept { 
return myPtr != 
nullptr; }
 
   72     explicit operator bool() noexcept { 
return myPtr != 
nullptr; }
 
   77         { 
return myPtr == other.myPtr; }
 
   81         { 
return !(*
this == other); }
 
   90     T *
get() 
const noexcept { 
return myPtr; }
 
   95     T *
release() noexcept { myIsOwner = 
false; 
return myPtr; }
 
  100     void reset() noexcept;
 
  114     bool isOwner() const noexcept { 
return myIsOwner; }
 
  121         UI_Look* 
ptr = myPtr;
 
  125         bool owner = myIsOwner;
 
  126         myIsOwner = 
b.myIsOwner;
 
  138     bool     myIsOwner = 
false;
 
  142 template <
typename T, 
class... Args>
 
  144 UImakeLook(Args&&... 
args)
 
  154 template <
typename T>
 
  160     if constexpr (SYS_IsSame_v<T, UI_Look>)
 
  167 template <
typename T>
 
  175 template <
typename T>
 
  176 template <
typename U>
 
  181     myIsOwner = other.isOwner();
 
  182     myPtr = other.release();
 
  185 template <
typename T>
 
  186 template <
typename U>
 
  200     UT_ASSERT((!myIsOwner && !other.isOwner()) || myPtr != other.get());
 
  203     if (myIsOwner && myPtr != other.get())
 
  207     myIsOwner = other.isOwner();
 
  208     myPtr = other.release();
 
  213 template <
typename T>
 
  224 template <
typename T>
 
  235 #endif // __UI_XPTR_H_INCLUDED__ 
SYS_FORCE_INLINE UI_XPtr & operator=(UI_XPtr< U > &&other) noexcept
 
SYS_FORCE_INLINE void swap(ThisType &b) noexcept
 
GLboolean GLboolean GLboolean GLboolean a
 
GUI_SceneLook ElementType
 
GUI_SceneLook * PointerType
 
SYS_FORCE_INLINE friend void swap(ThisType &a, ThisType &b) noexcept
 
SYS_FORCE_INLINE UI_XPtr() noexcept=default
 
SYS_FORCE_INLINE bool operator==(const ThisType &other) const noexcept
 
SYS_FORCE_INLINE bool isOwner() const noexcept
Determine if this is an owning pointer. 
 
#define SYS_NO_DISCARD_RESULT
 
SYS_FORCE_INLINE void reset() noexcept
 
GLboolean GLboolean GLboolean b
 
SYS_FORCE_INLINE T * operator->() const noexcept
 
SYS_FORCE_INLINE ~UI_XPtr()
 
SYS_FORCE_INLINE T * release() noexcept
 
SYS_FORCE_INLINE bool operator!=(const ThisType &other) const noexcept
 
**If you just want to fire and args
 
SYS_FORCE_INLINE T & operator*() const noexcept