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

#include <ice/mem_unique_ptr.hxx>

Classes

struct  UserDeleterInfo

Public Member Functions

 UniquePtr () noexcept
 ~UniquePtr () noexcept
 UniquePtr (ice::Allocator *alloc, T *ptr) noexcept
 UniquePtr (ice::UniquePtrCustomDeleter< T > *deleter_fn, T *ptr) noexcept
 UniquePtr (UniquePtr &&other) noexcept
template<typename U>
requires std::is_base_of_v<T, U>
 UniquePtr (UniquePtr< U > &&other) noexcept
auto operator= (UniquePtr &&other) noexcept -> UniquePtr &
template<typename U>
requires std::is_base_of_v<T, U>
auto operator= (UniquePtr< U > &&other) noexcept -> UniquePtr &
auto operator= (std::nullptr_t) noexcept -> UniquePtr &
bool operator== (std::nullptr_t) const noexcept
auto operator-> () const noexcept -> T *
auto operator* () const noexcept -> T &
auto get () const noexcept -> T *
void reset () noexcept

Public Attributes

Allocator_alloc
T * _ptr
void * _deleter

Constructor & Destructor Documentation

◆ UniquePtr() [1/5]

template<typename T>
ice::UniquePtr< T >::UniquePtr ( )
inlinenoexcept

◆ ~UniquePtr()

template<typename T>
ice::UniquePtr< T >::~UniquePtr ( )
inlinenoexcept

◆ UniquePtr() [2/5]

template<typename T>
ice::UniquePtr< T >::UniquePtr ( ice::Allocator * alloc,
T * ptr )
inlineexplicitnoexcept

◆ UniquePtr() [3/5]

template<typename T>
ice::UniquePtr< T >::UniquePtr ( ice::UniquePtrCustomDeleter< T > * deleter_fn,
T * ptr )
inlineexplicitnoexcept

◆ UniquePtr() [4/5]

template<typename T>
ice::UniquePtr< T >::UniquePtr ( UniquePtr< T > && other)
inlinenoexcept

◆ UniquePtr() [5/5]

template<typename T>
requires std::is_base_of_v<T, U>
template<typename U>
requires std::is_base_of_v<T, U>
ice::UniquePtr< T >::UniquePtr ( UniquePtr< U > && other)
inlinenoexcept

Member Function Documentation

◆ get()

template<typename T>
auto ice::UniquePtr< T >::get ( ) const -> T *
inlinenoexcept

◆ operator*()

template<typename T>
auto ice::UniquePtr< T >::operator* ( ) const -> T &
inlinenoexcept

◆ operator->()

template<typename T>
auto ice::UniquePtr< T >::operator-> ( ) const -> T *
inlinenoexcept

◆ operator=() [1/3]

template<typename T>
auto ice::UniquePtr< T >::operator= ( std::nullptr_t ) -> UniquePtr &
inlinenoexcept

◆ operator=() [2/3]

template<typename T>
auto ice::UniquePtr< T >::operator= ( UniquePtr< T > && other) -> UniquePtr &
inlinenoexcept

◆ operator=() [3/3]

template<typename T>
requires std::is_base_of_v<T, U>
template<typename U>
requires std::is_base_of_v<T, U>
auto ice::UniquePtr< T >::operator= ( UniquePtr< U > && other) -> UniquePtr &
inlinenoexcept

◆ operator==()

template<typename T>
bool ice::UniquePtr< T >::operator== ( std::nullptr_t ) const
inlinenoexcept

◆ reset()

template<typename T>
void ice::UniquePtr< T >::reset ( )
inlinenoexcept

Member Data Documentation

◆ _alloc

template<typename T>
Allocator* ice::UniquePtr< T >::_alloc

◆ _deleter

template<typename T>
void* ice::UniquePtr< T >::_deleter

◆ _ptr

template<typename T>
T* ice::UniquePtr< T >::_ptr

The documentation for this struct was generated from the following file: