observer_ptr< T > Class Template Reference

CPP API: mio::observer_ptr< T > Class Template Reference
mio::observer_ptr< T > Class Template Reference

A non-owning pointer. More...

#include <memory.h>

Public Member Functions

T * get () const
 Returns a raw pointer to the watched object. More...
 
 observer_ptr (const observer_ptr &other)=default
 
 observer_ptr (T *p)
 
 operator bool () const
 
bool operator!= (const observer_ptr &other) const
 
T & operator* () const
 
T * operator-> () const
 
bool operator== (const observer_ptr &other) const
 
void reset (T *p=nullptr)
 Replaces the watched object. More...
 

Private Attributes

T * m_raw_ptr
 

Detailed Description

template<typename T>
class mio::observer_ptr< T >

A non-owning pointer.

This class is identical to a raw pointer. However, the sematics of the name makes the ownership more obvious. One difference to the raw pointer is that it can't be deleted.

Constructor & Destructor Documentation

◆ observer_ptr() [1/2]

template<typename T >
mio::observer_ptr< T >::observer_ptr ( T *  p)
inline

◆ observer_ptr() [2/2]

template<typename T >
mio::observer_ptr< T >::observer_ptr ( const observer_ptr< T > &  other)
default

Member Function Documentation

◆ get()

template<typename T >
T* mio::observer_ptr< T >::get ( ) const
inline

Returns a raw pointer to the watched object.

◆ operator bool()

template<typename T >
mio::observer_ptr< T >::operator bool ( ) const
inline

◆ operator!=()

template<typename T >
bool mio::observer_ptr< T >::operator!= ( const observer_ptr< T > &  other) const
inline

◆ operator*()

template<typename T >
T& mio::observer_ptr< T >::operator* ( ) const
inline

◆ operator->()

template<typename T >
T* mio::observer_ptr< T >::operator-> ( ) const
inline

◆ operator==()

template<typename T >
bool mio::observer_ptr< T >::operator== ( const observer_ptr< T > &  other) const
inline

◆ reset()

template<typename T >
void mio::observer_ptr< T >::reset ( T *  p = nullptr)
inline

Replaces the watched object.

Member Data Documentation

◆ m_raw_ptr

template<typename T >
T* mio::observer_ptr< T >::m_raw_ptr
private