SLIDE  3.0.0
A simulator for lithium-ion battery pack degradation
Loading...
Searching...
No Matches
slide::Deep_ptr< T > Class Template Reference

#include <Deep_ptr.hpp>

Public Member Functions

 Deep_ptr ()=default
 Default constructor. More...
 
 Deep_ptr (T *p)
 Constructor taking a raw pointer. More...
 
 Deep_ptr (std::unique_ptr< T > &&uptr)
 
 Deep_ptr (const Deep_ptr &other)
 Copy constructor. More...
 
template<typename U , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
 Deep_ptr (const Deep_ptr< U > &other)
 
template<typename U , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
 Deep_ptr (const std::unique_ptr< U > &other)
 
 Deep_ptr (Deep_ptr &&other) noexcept
 Move constructor. More...
 
template<typename U , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
 Deep_ptr (Deep_ptr< U > &&other) noexcept
 
Deep_ptroperator= (const Deep_ptr &other)
 Copy assignment operator. More...
 
Deep_ptroperator= (Deep_ptr &&other) noexcept
 Move assignment operator. More...
 
T * operator-> () const
 Accessor operator. More...
 
T & operator* () const
 Dereference operator. More...
 
T * get () const
 Get the raw pointer. More...
 
 operator bool () const
 Check if the Deep_ptr is not empty. More...
 
void reset (T *p=nullptr)
 Reset the Deep_ptr. More...
 
void swap (Deep_ptr &other)
 

Friends

template<typename U >
class Deep_ptr
 
bool operator== (const Deep_ptr< T > &lhs, std::nullptr_t) noexcept
 
bool operator== (std::nullptr_t, const Deep_ptr< T > &rhs) noexcept
 
bool operator!= (const Deep_ptr< T > &lhs, std::nullptr_t) noexcept
 
bool operator!= (std::nullptr_t, const Deep_ptr< T > &rhs) noexcept
 

Constructor & Destructor Documentation

◆ Deep_ptr() [1/8]

template<typename T >
slide::Deep_ptr< T >::Deep_ptr ( )
default

Default constructor.

◆ Deep_ptr() [2/8]

template<typename T >
slide::Deep_ptr< T >::Deep_ptr ( T *  p)
inlineexplicit

Constructor taking a raw pointer.

◆ Deep_ptr() [3/8]

template<typename T >
slide::Deep_ptr< T >::Deep_ptr ( std::unique_ptr< T > &&  uptr)
inline

◆ Deep_ptr() [4/8]

template<typename T >
slide::Deep_ptr< T >::Deep_ptr ( const Deep_ptr< T > &  other)
inline

Copy constructor.

◆ Deep_ptr() [5/8]

template<typename T >
template<typename U , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
slide::Deep_ptr< T >::Deep_ptr ( const Deep_ptr< U > &  other)
inline

◆ Deep_ptr() [6/8]

template<typename T >
template<typename U , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
slide::Deep_ptr< T >::Deep_ptr ( const std::unique_ptr< U > &  other)
inline

◆ Deep_ptr() [7/8]

template<typename T >
slide::Deep_ptr< T >::Deep_ptr ( Deep_ptr< T > &&  other)
inlinenoexcept

Move constructor.

◆ Deep_ptr() [8/8]

template<typename T >
template<typename U , typename = std::enable_if_t<std::is_base_of<T, U>::value>>
slide::Deep_ptr< T >::Deep_ptr ( Deep_ptr< U > &&  other)
inlinenoexcept

Member Function Documentation

◆ get()

template<typename T >
T * slide::Deep_ptr< T >::get ( ) const
inline

Get the raw pointer.

Here is the caller graph for this function:

◆ operator bool()

template<typename T >
slide::Deep_ptr< T >::operator bool ( ) const
inlineexplicit

Check if the Deep_ptr is not empty.

◆ operator*()

template<typename T >
T & slide::Deep_ptr< T >::operator* ( ) const
inline

Dereference operator.

◆ operator->()

template<typename T >
T * slide::Deep_ptr< T >::operator-> ( ) const
inline

Accessor operator.

◆ operator=() [1/2]

template<typename T >
Deep_ptr & slide::Deep_ptr< T >::operator= ( const Deep_ptr< T > &  other)
inline

Copy assignment operator.

◆ operator=() [2/2]

template<typename T >
Deep_ptr & slide::Deep_ptr< T >::operator= ( Deep_ptr< T > &&  other)
inlinenoexcept

Move assignment operator.

◆ reset()

template<typename T >
void slide::Deep_ptr< T >::reset ( T *  p = nullptr)
inline

Reset the Deep_ptr.

◆ swap()

template<typename T >
void slide::Deep_ptr< T >::swap ( Deep_ptr< T > &  other)
inline

Friends And Related Function Documentation

◆ Deep_ptr

template<typename T >
template<typename U >
friend class Deep_ptr
friend

◆ operator!= [1/2]

template<typename T >
bool operator!= ( const Deep_ptr< T > &  lhs,
std::nullptr_t   
)
friend

◆ operator!= [2/2]

template<typename T >
bool operator!= ( std::nullptr_t  ,
const Deep_ptr< T > &  rhs 
)
friend

◆ operator== [1/2]

template<typename T >
bool operator== ( const Deep_ptr< T > &  lhs,
std::nullptr_t   
)
friend

◆ operator== [2/2]

template<typename T >
bool operator== ( std::nullptr_t  ,
const Deep_ptr< T > &  rhs 
)
friend

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