fpmas 1.6
Public Types | Public Member Functions | Protected Attributes | List of all members
fpmas::api::utils::PtrWrapper< T > Class Template Reference

#include <ptr_wrapper.h>

Public Types

typedef T element_type
 
typedef T * pointer
 

Public Member Functions

 PtrWrapper ()
 
 PtrWrapper (T *ptr)
 
T * get ()
 
const T * get () const
 
T * release ()
 
T * operator-> ()
 
const T * operator-> () const
 
T & operator* ()
 
const T & operator* () const
 
 operator T* ()
 
 operator const T * () const
 

Protected Attributes

T * ptr
 

Detailed Description

template<typename T>
class fpmas::api::utils::PtrWrapper< T >

A trivial pointer wrapper helper class.

Such wrappers are notably used to allow JSON serialization of pointers with the nlohmann library, since using directly a pointer as type raised some errors.

It also maked pointer usage as data type in api::graph::DistributedGraph easier.

Member Typedef Documentation

◆ element_type

template<typename T >
typedef T fpmas::api::utils::PtrWrapper< T >::element_type

Type of object managed by this PtrWrapper.

◆ pointer

template<typename T >
typedef T* fpmas::api::utils::PtrWrapper< T >::pointer

Pointer type wrapped by this PtrWrapper.

Constructor & Destructor Documentation

◆ PtrWrapper() [1/2]

template<typename T >
fpmas::api::utils::PtrWrapper< T >::PtrWrapper ( )
inline

PtrWrapper default constructor.

The internal pointer is initialized to nullptr.

◆ PtrWrapper() [2/2]

template<typename T >
fpmas::api::utils::PtrWrapper< T >::PtrWrapper ( T *  ptr)
inline

PtrWrapper constructor.

Parameters
ptrpointer to wrap

Member Function Documentation

◆ get() [1/2]

template<typename T >
T * fpmas::api::utils::PtrWrapper< T >::get ( )
inline

Gets the internal pointer.

Returns
internal pointer

◆ get() [2/2]

template<typename T >
const T * fpmas::api::utils::PtrWrapper< T >::get ( ) const
inline

Gets the internal pointer.

Returns
internal pointer

◆ release()

template<typename T >
T * fpmas::api::utils::PtrWrapper< T >::release ( )
inline

Returns the internal pointer and sets it to nullptr.

Returns
internal pointer

◆ operator->() [1/2]

template<typename T >
T * fpmas::api::utils::PtrWrapper< T >::operator-> ( )
inline

Member of pointer operator.

Returns
internal pointer

◆ operator->() [2/2]

template<typename T >
const T * fpmas::api::utils::PtrWrapper< T >::operator-> ( ) const
inline

Member of pointer operator.

Returns
internal pointer

◆ operator*() [1/2]

template<typename T >
T & fpmas::api::utils::PtrWrapper< T >::operator* ( )
inline

Indirection operator.

Returns
reference to the object to which the internal pointer points

◆ operator*() [2/2]

template<typename T >
const T & fpmas::api::utils::PtrWrapper< T >::operator* ( ) const
inline

Indirection operator.

Returns
reference to the object to which the internal pointer points

◆ operator T*()

template<typename T >
fpmas::api::utils::PtrWrapper< T >::operator T* ( )
inline

Implicit pointer conversion operator.

◆ operator const T *()

template<typename T >
fpmas::api::utils::PtrWrapper< T >::operator const T * ( ) const
inline

Implicit pointer conversion operator.

Member Data Documentation

◆ ptr

template<typename T >
T* fpmas::api::utils::PtrWrapper< T >::ptr
protected

Internal pointer.


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