IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
Loading...
Searching...
No Matches
ice::Ptr< Object > Class Template Reference

#include <ice/ptr.hxx>

Public Member Functions

 ~Ptr () noexcept
 Ptr (std::nullptr_t=nullptr) noexcept
 Ptr (Object *object_ptr) noexcept
 Ptr (Ptr const &other) noexcept
auto operator= (Ptr const &other) noexcept -> Ptr &
 Ptr (Ptr &&other) noexcept
auto operator= (Ptr &&other) noexcept -> Ptr &
template<typename Derived>
requires std::is_base_of_v<Object, Derived>
 Ptr (Ptr< Derived > const &other) noexcept
template<typename Derived>
requires std::is_base_of_v<Object, Derived>
auto operator= (Ptr< Derived > const &other) noexcept -> Ptr &
template<typename Self>
auto raw_ptr (this Self &self) noexcept -> Object *
template<typename Self>
auto operator-> (this Self &self) noexcept
template<typename Self>
auto operator== (this Self const &self, std::nullptr_t) noexcept -> bool
template<typename Derived>
requires std::is_base_of_v<Object, Derived>
auto operator= (Ptr< Derived const > const &other) noexcept -> Ptr &

Constructor & Destructor Documentation

◆ ~Ptr()

template<typename Object>
requires ice::concepts::IsRefCounted<Object>
ice::Ptr< Object >::~Ptr ( )
inlinenoexcept

◆ Ptr() [1/5]

template<typename Object>
requires ice::concepts::IsRefCounted<Object>
ice::Ptr< Object >::Ptr ( std::nullptr_t = nullptr)
inlineexplicitnoexcept

◆ Ptr() [2/5]

template<typename Object>
requires ice::concepts::IsRefCounted<Object>
ice::Ptr< Object >::Ptr ( Object * object_ptr)
inlineexplicitnoexcept

◆ Ptr() [3/5]

template<typename Object>
requires ice::concepts::IsRefCounted<Object>
ice::Ptr< Object >::Ptr ( Ptr< Object > const & other)
inlinenoexcept

◆ Ptr() [4/5]

template<typename Object>
requires ice::concepts::IsRefCounted<Object>
ice::Ptr< Object >::Ptr ( Ptr< Object > && other)
inlinenoexcept

◆ Ptr() [5/5]

template<typename Object>
requires std::is_base_of_v<Object, Derived>
template<typename Derived>
requires std::is_base_of_v<Object, Derived>
ice::Ptr< Object >::Ptr ( Ptr< Derived > const & other)
inlinenoexcept

Member Function Documentation

◆ operator->()

template<typename Object>
template<typename Self>
auto ice::Ptr< Object >::operator-> ( this Self & self)
inlinenoexcept

◆ operator=() [1/4]

template<typename Object>
requires ice::concepts::IsRefCounted<Object>
auto ice::Ptr< Object >::operator= ( Ptr< Object > && other) -> Ptr &
inlinenoexcept

◆ operator=() [2/4]

template<typename Object>
requires ice::concepts::IsRefCounted<Object>
auto ice::Ptr< Object >::operator= ( Ptr< Object > const & other) -> Ptr &
inlinenoexcept

◆ operator=() [3/4]

template<typename Object>
requires std::is_base_of_v<Object, Derived>
template<typename Derived>
requires std::is_base_of_v<Object, Derived>
auto ice::Ptr< Object >::operator= ( Ptr< Derived > const & other) -> Ptr &
inlinenoexcept

◆ operator=() [4/4]

template<typename Object>
template<typename Derived>
requires std::is_base_of_v<Object, Derived>
auto ice::Ptr< Object >::operator= ( Ptr< Derived const > const & other) -> Ptr &
inlinenoexcept

◆ operator==()

template<typename Object>
template<typename Self>
auto ice::Ptr< Object >::operator== ( this Self const & self,
std::nullptr_t  ) -> bool
inlinenoexcept

◆ raw_ptr()

template<typename Object>
template<typename Self>
auto ice::Ptr< Object >::raw_ptr ( this Self & self) -> Object *
inlinenodiscardnoexcept

The documentation for this class was generated from the following files: