48 template <
typename... Args>
50 : m_WidgetPtr{std::make_shared<WidgetType>(std::forward<Args>(args)...)}
55 : m_WidgetPtr{std::make_shared<WidgetType>(*other.m_WidgetPtr)}
60 : m_WidgetPtr{std::move(other.m_WidgetPtr)}
67 m_WidgetPtr = std::make_shared<WidgetType>(*other.m_WidgetPtr);
75 m_WidgetPtr = std::move(other.m_WidgetPtr);
80 operator bool()
const noexcept
82 return (m_WidgetPtr !=
nullptr);
85 WidgetType& operator*()
const noexcept
90 WidgetType* operator->()
const noexcept
92 return m_WidgetPtr.get();
95 TGUI_NODISCARD WidgetType* get()
const noexcept
97 return m_WidgetPtr.get();
103 std::shared_ptr<WidgetType> m_WidgetPtr;