sandbox
Loading...
Searching...
No Matches
sbx::memory::observer_ptr< Type > Class Template Reference

A non-owning pointer that can be used to observe the value of a pointer. More...

#include <observer_ptr.hpp>

Public Types

using value_type = Type
 
using pointer = value_type *
 
using const_pointer = const value_type *
 

Public Member Functions

constexpr observer_ptr (std::nullptr_t) noexcept
 
constexpr observer_ptr (pointer value) noexcept
 
template<smart_pointer< value_type > Pointer>
constexpr observer_ptr (const Pointer &value) noexcept
 
template<typename Other >
requires (std::is_convertible_v<Other*, pointer>)
constexpr observer_ptr (observer_ptr< Other > &other) noexcept
 
constexpr observer_ptr (const observer_ptr &) noexcept=default
 
constexpr observer_ptr (observer_ptr &&) noexcept=default
 
constexpr auto operator= (const observer_ptr &) noexcept -> observer_ptr &=default
 
constexpr auto operator= (observer_ptr &&) noexcept -> observer_ptr &=default
 
constexpr auto operator= (std::nullptr_t) noexcept -> observer_ptr &
 
constexpr auto operator= (pointer value) noexcept -> observer_ptr &
 
constexpr auto release () noexcept -> pointer
 
constexpr auto reset (pointer value=nullptr) noexcept -> void
 
constexpr auto swap (observer_ptr &other) noexcept -> void
 
constexpr auto is_valid () const noexcept -> bool
 
constexpr operator bool () const noexcept
 
constexpr auto operator-> () const noexcept -> const_pointer
 
constexpr auto operator-> () noexcept -> pointer
 
constexpr auto operator* () const noexcept(noexcept(*std::declval< pointer >())) -> std::add_const_t< std::add_lvalue_reference_t< value_type > >
 
constexpr auto operator* () noexcept(noexcept(*std::declval< pointer >())) -> std::add_lvalue_reference_t< value_type >
 
constexpr auto get () const noexcept -> const_pointer
 
constexpr auto get () noexcept -> pointer
 

Detailed Description

template<typename Type>
class sbx::memory::observer_ptr< Type >

A non-owning pointer that can be used to observe the value of a pointer.

Template Parameters
TypeThe type of the pointer.
Since
1.0.0
Note
This class adds null checks to the pointer dereference operators in debug builds.

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