UCommon
ucommon::temporary< T > Class Template Reference

Manage temporary object stored on the heap. More...

#include <temporary.h>

Public Member Functions

 operator bool () const
 
 operator T& () const
 
bool operator! () const
 
T * operator() (size_t index) const
 
void operator() (size_t index, const T value)
 
T & operator* () const
 Access heap object through our temporary directly.
 
T * operator-> () const
 Access members of our heap object through our temporary.
 
temporaryoperator= (const T initial)
 
T & operator[] (size_t index) const
 
size_t read (FILE *fp)
 
void release ()
 
size_t seek (FILE *fp, long pos)
 
 temporary (const T initial)
 
 temporary (size_t size, const T initial)
 
 temporary (size_t size=1)
 Construct a temporary object, create our stack frame reference.
 
T & value (size_t index) const
 
void value (size_t index, const T value)
 
size_t write (FILE *fp)
 

Protected Attributes

T * array
 
size_t used
 

Detailed Description

template<typename T>
class ucommon::temporary< T >

Manage temporary object stored on the heap.

This is used to create a object on the heap who's scope is controlled by the scope of a member function call. Sometimes we have data types and structures which cannot themselves appear as auto variables. We may also have a limited stack frame size in a thread context, and yet have a dynamic object that we only want to exist during the life of the method call. Using temporary allows any type to be created from the heap but have a lifespan of a method's stack frame.

Author
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org

Definition at line 80 of file temporary.h.

Constructor & Destructor Documentation

◆ temporary() [1/3]

template<typename T >
ucommon::temporary< T >::temporary ( size_t size = 1)
inline

Construct a temporary object, create our stack frame reference.

Definition at line 93 of file temporary.h.

◆ temporary() [2/3]

template<typename T >
ucommon::temporary< T >::temporary ( size_t size,
const T initial )
inline

Definition at line 98 of file temporary.h.

◆ temporary() [3/3]

template<typename T >
ucommon::temporary< T >::temporary ( const T initial)
inlineexplicit

Definition at line 105 of file temporary.h.

◆ ~temporary()

template<typename T >
ucommon::temporary< T >::~temporary ( )
inline

Definition at line 111 of file temporary.h.

Member Function Documentation

◆ operator bool()

template<typename T >
ucommon::temporary< T >::operator bool ( ) const
inline

Definition at line 138 of file temporary.h.

◆ operator T&()

template<typename T >
ucommon::temporary< T >::operator T& ( ) const
inline

Definition at line 118 of file temporary.h.

◆ operator!()

template<typename T >
bool ucommon::temporary< T >::operator! ( ) const
inline

Definition at line 142 of file temporary.h.

◆ operator()() [1/2]

template<typename T >
T * ucommon::temporary< T >::operator() ( size_t index) const
inline

Definition at line 163 of file temporary.h.

◆ operator()() [2/2]

template<typename T >
void ucommon::temporary< T >::operator() ( size_t index,
const T value )
inline

Definition at line 168 of file temporary.h.

◆ operator*()

template<typename T >
T & ucommon::temporary< T >::operator* ( ) const
inline

Access heap object through our temporary directly.

Returns
reference to heap resident object.

Definition at line 126 of file temporary.h.

◆ operator->()

template<typename T >
T * ucommon::temporary< T >::operator-> ( ) const
inline

Access members of our heap object through our temporary.

Returns
member reference of heap object.

Definition at line 134 of file temporary.h.

◆ operator=()

template<typename T >
temporary & ucommon::temporary< T >::operator= ( const T initial)
inline

Definition at line 146 of file temporary.h.

◆ operator[]()

template<typename T >
T & ucommon::temporary< T >::operator[] ( size_t index) const
inline

Definition at line 158 of file temporary.h.

◆ read()

template<typename T >
size_t ucommon::temporary< T >::read ( FILE * fp)
inline

Definition at line 183 of file temporary.h.

◆ release()

template<typename T >
void ucommon::temporary< T >::release ( )
inline

Definition at line 151 of file temporary.h.

◆ seek()

template<typename T >
size_t ucommon::temporary< T >::seek ( FILE * fp,
long pos )
inline

Definition at line 193 of file temporary.h.

◆ value() [1/2]

template<typename T >
T & ucommon::temporary< T >::value ( size_t index) const
inline

Definition at line 173 of file temporary.h.

◆ value() [2/2]

template<typename T >
void ucommon::temporary< T >::value ( size_t index,
const T value )
inline

Definition at line 178 of file temporary.h.

◆ write()

template<typename T >
size_t ucommon::temporary< T >::write ( FILE * fp)
inline

Definition at line 188 of file temporary.h.

Field Documentation

◆ array

template<typename T >
T* ucommon::temporary< T >::array
protected

Definition at line 86 of file temporary.h.

◆ used

template<typename T >
size_t ucommon::temporary< T >::used
protected

Definition at line 87 of file temporary.h.


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