Honeycomb  0.1
Component-Model Framework
Public Member Functions | List of all members
honey::recursive_wrap< T, Alloc > Class Template Reference

Allows for recursive type definitions, eg. class Object : vector<recursive_wrap<Object>>. More...

#include <StdUtil.h>

Public Member Functions

 recursive_wrap (Alloc a=Alloc())
 
template<class T_ >
 recursive_wrap (T_ &&t, Alloc a=Alloc())
 
 recursive_wrap (const recursive_wrap &rhs)
 
 recursive_wrap (recursive_wrap &rhs)
 
 recursive_wrap (recursive_wrap &&rhs)
 
template<class T_ >
recursive_wrapoperator= (T_ &&t)
 
recursive_wrapoperator= (const recursive_wrap &rhs)
 
recursive_wrapoperator= (recursive_wrap &rhs)
 
recursive_wrapoperator= (recursive_wrap &&rhs)
 
T & operator* ()
 Get the wrapped object. More...
 
const T & operator* () const
 
T * operator-> ()
 
const T * operator-> () const
 
 operator T & ()
 
 operator const T & () const
 
T * ptr ()
 Get the internal pointer, may be null if wrapper was moved. More...
 
const T * ptr () const
 

Detailed Description

template<class T, class Alloc = typename DefaultAllocator<T>::type>
class honey::recursive_wrap< T, Alloc >

Allows for recursive type definitions, eg. class Object : vector<recursive_wrap<Object>>.

This wrapper dynamically allocates the object and stores a pointer internally. The wrapper interface provides value semantics to the dynamic object.

Constructor & Destructor Documentation

template<class T , class Alloc = typename DefaultAllocator<T>::type>
honey::recursive_wrap< T, Alloc >::recursive_wrap ( Alloc  a = Alloc())
inline
template<class T , class Alloc = typename DefaultAllocator<T>::type>
template<class T_ >
honey::recursive_wrap< T, Alloc >::recursive_wrap ( T_ &&  t,
Alloc  a = Alloc() 
)
inline
template<class T , class Alloc = typename DefaultAllocator<T>::type>
honey::recursive_wrap< T, Alloc >::recursive_wrap ( const recursive_wrap< T, Alloc > &  rhs)
inline
template<class T , class Alloc = typename DefaultAllocator<T>::type>
honey::recursive_wrap< T, Alloc >::recursive_wrap ( recursive_wrap< T, Alloc > &  rhs)
inline
template<class T , class Alloc = typename DefaultAllocator<T>::type>
honey::recursive_wrap< T, Alloc >::recursive_wrap ( recursive_wrap< T, Alloc > &&  rhs)
inline

Member Function Documentation

template<class T , class Alloc = typename DefaultAllocator<T>::type>
honey::recursive_wrap< T, Alloc >::operator const T & ( ) const
inline
template<class T , class Alloc = typename DefaultAllocator<T>::type>
honey::recursive_wrap< T, Alloc >::operator T & ( )
inline
template<class T , class Alloc = typename DefaultAllocator<T>::type>
T& honey::recursive_wrap< T, Alloc >::operator* ( )
inline

Get the wrapped object.

template<class T , class Alloc = typename DefaultAllocator<T>::type>
const T& honey::recursive_wrap< T, Alloc >::operator* ( ) const
inline
template<class T , class Alloc = typename DefaultAllocator<T>::type>
T* honey::recursive_wrap< T, Alloc >::operator-> ( )
inline
template<class T , class Alloc = typename DefaultAllocator<T>::type>
const T* honey::recursive_wrap< T, Alloc >::operator-> ( ) const
inline
template<class T , class Alloc = typename DefaultAllocator<T>::type>
template<class T_ >
recursive_wrap& honey::recursive_wrap< T, Alloc >::operator= ( T_ &&  t)
inline
template<class T , class Alloc = typename DefaultAllocator<T>::type>
recursive_wrap& honey::recursive_wrap< T, Alloc >::operator= ( const recursive_wrap< T, Alloc > &  rhs)
inline
template<class T , class Alloc = typename DefaultAllocator<T>::type>
recursive_wrap& honey::recursive_wrap< T, Alloc >::operator= ( recursive_wrap< T, Alloc > &  rhs)
inline
template<class T , class Alloc = typename DefaultAllocator<T>::type>
recursive_wrap& honey::recursive_wrap< T, Alloc >::operator= ( recursive_wrap< T, Alloc > &&  rhs)
inline
template<class T , class Alloc = typename DefaultAllocator<T>::type>
T* honey::recursive_wrap< T, Alloc >::ptr ( )
inline

Get the internal pointer, may be null if wrapper was moved.

template<class T , class Alloc = typename DefaultAllocator<T>::type>
const T* honey::recursive_wrap< T, Alloc >::ptr ( ) const
inline

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