PooledList< T > Class Template Reference

Data Structures

Public Types

Public Member Functions

Private Attributes


Detailed Description

template<class T>
class PooledList< T >

we provide our own linked list for ResElems that provides a custom allocator and a method to append an element to the list without copying data, i.e. constructing a new element in place. This used to be based on the standard library list, but I'm no longer in the mood to keep up with changing internals in both libstdc++ (GNU) and LIBCPP (LLVM).

see http://www.panix.com/~elflord/cpp/list_howto/ for a reference on circular lists with sentinels


Member Enumeration Documentation

template<class T >
anonymous enum
Enumerator:
alloc_elem_size 

Constructor & Destructor Documentation

template<class T >
PooledList< T >::PooledList ( Pool pool  )  [inline]
template<class T >
PooledList< T >::PooledList ( const PooledList< T > &  L  )  [inline]
template<class T >
PooledList< T >::~PooledList (  )  [inline]

Member Function Documentation

template<class T >
Node* PooledList< T >::alloc ( void   )  [inline]
template<class T >
void PooledList< T >::dealloc ( Node n  )  [inline]
template<class T >
void PooledList< T >::reverse (  )  [inline]
template<class T >
void PooledList< T >::swap ( PooledList< T > &  x  )  [inline]
template<class T >
PooledList& PooledList< T >::operator= ( const PooledList< T > &  x  )  [inline]
template<class T >
void PooledList< T >::clear (  )  [inline]
template<class T >
void PooledList< T >::push_front ( const T &  x  )  [inline]
template<class T >
void PooledList< T >::push_back ( const T &  x  )  [inline]
template<class T >
T* PooledList< T >::push_back_noconstruct ( void   )  [inline]
template<class T >
void PooledList< T >::pop_front (  )  [inline]
template<class T >
bool PooledList< T >::empty (  )  [inline]
template<class T >
T& PooledList< T >::front (  )  [inline]
template<class T >
const T& PooledList< T >::front (  )  const [inline]
template<class T >
T& PooledList< T >::back (  )  [inline]
template<class T >
const T& PooledList< T >::back (  )  const [inline]
template<class T >
iterator PooledList< T >::begin (  )  [inline]
template<class T >
iterator PooledList< T >::end (  )  [inline]
template<class T >
const_iterator PooledList< T >::begin (  )  const [inline]
template<class T >
const_iterator PooledList< T >::end (  )  const [inline]
template<class T >
void PooledList< T >::erase ( iterator  x  )  [inline]
template<class T >
void PooledList< T >::insert ( iterator  x,
const T &  y 
) [inline]
template<class T >
void PooledList< T >::rotate ( iterator  x  )  [inline]

Field Documentation

template<class T >
Pool* PooledList< T >::m_pool [private]
template<class T >
Node* PooledList< T >::m_node [private]

Generated on 4 Nov 2015 for CURE by  doxygen 1.6.1