qpid::IList< Node > Class Template Reference

Intrusive doubly-linked list. More...

#include <IList.h>

List of all members.

Public Types

typedef Node value_type
typedef Node::pointer pointer
typedef Node::const_pointer const_pointer
typedef value_type & reference
typedef const value_type & const_reference
typedef size_t size_type
typedef ptrdiff_t difference_type
typedef Iterator< value_type > iterator
typedef Iterator< const
value_type > 
const_iterator

Public Member Functions

iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
bool empty () const
size_type size () const
void swap (IList &x)
iterator insert (iterator i, const pointer &p)
void erase (iterator i)
void erase (iterator i, iterator j)
void clear ()
reference front ()
const_reference front () const
void push_front (const pointer &p)
void pop_front ()
iterator last ()
 Iterator to the last element in the list.
const_iterator last () const
reference back ()
const_reference back () const
void push_back (const pointer &p)
void pop_back ()


Detailed Description

template<class Node>
class qpid::IList< Node >

Intrusive doubly-linked list.

Provides bidirectional iterator and constant time insertion at front and back.

The list itself performs no memory management. Use a smart pointer as the pointer type (e.g. intrusive_ptr, shared_ptr) for automated memory management.

Unlike standard containers insert(), push_front() and push_back() take const pointer& rather than const value_type&.

Iterators can be converted to the pointer type.

Noncopyable - intrusively linked nodes cannot be shared between lists. Does provide swap()

Parameters:
Node value type for the list, must derive from ISListNode<>.

Member Function Documentation

template<class Node>
iterator qpid::IList< Node >::last (  )  [inline]

Iterator to the last element in the list.


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

Generated on Thu May 15 22:22:20 2008 for Qpid by  doxygen 1.5.5