Porytiles
Loading...
Searching...
No Matches
porytiles::view_ptr< T > Class Template Reference

A smart pointer that represents a non-owning view of a resource. More...

#include <view_ptr.hpp>

Public Member Functions

constexpr view_ptr () noexcept
 
constexpr view_ptr (std::nullptr_t) noexcept
 
 view_ptr (T *p) noexcept
 
 view_ptr (const view_ptr &other) noexcept=default
 
view_ptroperator= (const view_ptr &other) noexcept=default
 
 view_ptr (view_ptr &&other) noexcept
 
view_ptroperator= (view_ptr &&other) noexcept
 
T * get () const noexcept
 
T & operator* () const
 
T * operator-> () const noexcept
 
 operator bool () const noexcept
 
T * release () noexcept
 
void reset (T *p=nullptr) noexcept
 
void swap (view_ptr &other) noexcept
 

Detailed Description

template<typename T>
class porytiles::view_ptr< T >

A smart pointer that represents a non-owning view of a resource.

The view_ptr allows for reading and writing and is semantically equivalent to a raw pointer. The purpose of view_ptr is to explicitly signal that the pointed-to resource is not owned by the owner of the pointer.

Definition at line 16 of file view_ptr.hpp.

Constructor & Destructor Documentation

◆ view_ptr() [1/5]

template<typename T >
constexpr porytiles::view_ptr< T >::view_ptr ( )
inlineconstexprnoexcept

Definition at line 18 of file view_ptr.hpp.

◆ view_ptr() [2/5]

template<typename T >
constexpr porytiles::view_ptr< T >::view_ptr ( std::nullptr_t  )
inlineexplicitconstexprnoexcept

Definition at line 20 of file view_ptr.hpp.

◆ view_ptr() [3/5]

template<typename T >
porytiles::view_ptr< T >::view_ptr ( T *  p)
inlineexplicitnoexcept

Definition at line 22 of file view_ptr.hpp.

◆ view_ptr() [4/5]

template<typename T >
porytiles::view_ptr< T >::view_ptr ( const view_ptr< T > &  other)
defaultnoexcept

◆ view_ptr() [5/5]

template<typename T >
porytiles::view_ptr< T >::view_ptr ( view_ptr< T > &&  other)
inlinenoexcept

Definition at line 28 of file view_ptr.hpp.

Member Function Documentation

◆ get()

template<typename T >
T * porytiles::view_ptr< T >::get ( ) const
inlinenoexcept

Definition at line 35 of file view_ptr.hpp.

◆ operator bool()

template<typename T >
porytiles::view_ptr< T >::operator bool ( ) const
inlineexplicitnoexcept

Definition at line 49 of file view_ptr.hpp.

◆ operator*()

template<typename T >
T & porytiles::view_ptr< T >::operator* ( ) const
inline

Definition at line 39 of file view_ptr.hpp.

◆ operator->()

template<typename T >
T * porytiles::view_ptr< T >::operator-> ( ) const
inlinenoexcept

Definition at line 44 of file view_ptr.hpp.

◆ operator=() [1/2]

template<typename T >
view_ptr & porytiles::view_ptr< T >::operator= ( const view_ptr< T > &  other)
defaultnoexcept

◆ operator=() [2/2]

template<typename T >
view_ptr & porytiles::view_ptr< T >::operator= ( view_ptr< T > &&  other)
inlinenoexcept

Definition at line 30 of file view_ptr.hpp.

◆ release()

template<typename T >
T * porytiles::view_ptr< T >::release ( )
inlinenoexcept

Definition at line 53 of file view_ptr.hpp.

◆ reset()

template<typename T >
void porytiles::view_ptr< T >::reset ( T *  p = nullptr)
inlinenoexcept

Definition at line 57 of file view_ptr.hpp.

◆ swap()

template<typename T >
void porytiles::view_ptr< T >::swap ( view_ptr< T > &  other)
inlinenoexcept

Definition at line 61 of file view_ptr.hpp.


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