atlas  0.6
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
atlas::containers::sl_list< T, Alloc > Class Template Reference

#include <sl_list.h>

Inheritance diagram for atlas::containers::sl_list< T, Alloc >:
Inheritance graph
[legend]
Collaboration diagram for atlas::containers::sl_list< T, Alloc >:
Collaboration graph
[legend]

Classes

class  ensure
 

Public Types

typedef T value_type
 
typedef std::size_t size_type
 
typedef std::ptrdiff_t difference_type
 
typedef value_typereference
 
typedef const value_typeconst_reference
 
typedef value_typepointer
 
typedef const value_typeconst_pointer
 
typedef sl_list_const_iterator< T, Alloc > const_iterator
 
typedef sl_list_iterator< T, Alloc > iterator
 
typedef weak_sl_list_const_iterator< T, Alloc > weak_const_iterator
 
typedef weak_sl_list_iterator< T, Alloc > weak_iterator
 

Public Member Functions

 sl_list ()
 
 sl_list (const alloc_type &a)
 
 sl_list (alloc_type &&a)
 
 sl_list (const sl_list &x)
 
 sl_list (sl_list &&x)
 
 sl_list (simple_list< T, Alloc > &&x)
 
template<typename InputIt , typename = typename std::enable_if< std::is_base_of<std::input_iterator_tag, typename std::iterator_traits<InputIt>::iterator_category >::value>::type>
 sl_list (InputIt first, InputIt last, const alloc_type &a=alloc_type())
 
 sl_list (size_type n, const alloc_type &a=alloc_type())
 
 sl_list (size_type n, const T &x, const alloc_type &a=alloc_type())
 
 sl_list (std::initializer_list< T > l, const alloc_type &a=alloc_type())
 
 ~sl_list ()
 
sl_listoperator= (const sl_list &x)
 
sl_listoperator= (sl_list &&x)
 
void swap (sl_list &other)
 
const alloc_typeget_node_allocator () const
 
alloc_typenode_allocator ()
 
iterator begin ()
 
iterator end ()
 
weak_iterator wbegin ()
 
weak_iterator wend ()
 
T & front ()
 
void pop_front ()
 
void push_front (const T &val)
 
void push_front (T &&val)
 
template<typename... Args>
void emplace_front (Args &&...args)
 
iterator push_back (const T &val)
 
iterator push_back (T &&val)
 
template<typename... Args>
iterator emplace_back (Args &&...args)
 
bool empty () const
 
bool singleton () const
 
size_type size () const
 
iterator insert (const_iterator pos, const T &val)
 
iterator insert (const_iterator pos, T &&val)
 
iterator insert (const_iterator pos, size_type n, const T &val)
 
template<typename InputIt , typename = typename std::enable_if< std::is_base_of<std::input_iterator_tag, typename std::iterator_traits<InputIt>::iterator_category >::value>::type>
iterator insert (const_iterator pos, InputIt first, InputIt last)
 
template<typename InputIt >
void move_insert (const_iterator pos, InputIt first, InputIt last)
 
iterator erase (const_iterator pos)
 
iterator erase (const_iterator first, const_iterator last)
 
void append (sl_list &&other)
 
iterator splice (const_iterator pos, sl_list &&other)
 
void clear ()
 
void assign (size_type n, const T &x)
 
template<typename InputIt , typename = typename std::enable_if< std::is_base_of<std::input_iterator_tag, typename std::iterator_traits<InputIt>::iterator_category >::value>::type>
void assign (InputIt first, InputIt last)
 
template<typename InputIt >
void move_assign (InputIt first, InputIt last)
 
void reverse ()
 
void reverse (const_iterator from, const_iterator to)
 
simple_list< T, Alloc > undress ()
 
const T & front () const
 
const_iterator begin () const
 
const_iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
weak_const_iterator wbegin () const
 
weak_const_iterator wcbegin () const
 
weak_const_iterator wend () const
 
weak_const_iterator wcend () const
 

Static Public Member Functions

static bool at_end (const_iterator p)
 
static bool at_end (weak_const_iterator p)
 

Private Types

typedef sl_node< T, Alloc > node_type
 
typedef Alloc::template rebind< node_type >::other alloc_type
 
typedef Alloc::pointer node_ptr
 
typedef std::unique_ptr< node_type, allocator_deleter< alloc_type > > link_type
 

Private Member Functions

void set_empty ()
 

Private Attributes

link_type head
 
link_typetail
 
size_type node_count
 

Member Typedef Documentation

template<typename T, typename Alloc>
typedef Alloc::template rebind<node_type>::other atlas::containers::sl_list< T, Alloc >::alloc_type
private
template<typename T, typename Alloc>
typedef sl_list_const_iterator<T,Alloc> atlas::containers::sl_list< T, Alloc >::const_iterator
template<typename T, typename Alloc>
typedef const value_type* atlas::containers::sl_list< T, Alloc >::const_pointer
template<typename T, typename Alloc>
typedef const value_type& atlas::containers::sl_list< T, Alloc >::const_reference
template<typename T, typename Alloc>
typedef std::ptrdiff_t atlas::containers::sl_list< T, Alloc >::difference_type
template<typename T, typename Alloc>
typedef sl_list_iterator<T,Alloc> atlas::containers::sl_list< T, Alloc >::iterator
template<typename T, typename Alloc>
typedef std::unique_ptr<node_type, allocator_deleter<alloc_type> > atlas::containers::sl_list< T, Alloc >::link_type
private
template<typename T, typename Alloc>
typedef Alloc::pointer atlas::containers::sl_list< T, Alloc >::node_ptr
private
template<typename T, typename Alloc>
typedef sl_node<T, Alloc> atlas::containers::sl_list< T, Alloc >::node_type
private
template<typename T, typename Alloc>
typedef value_type* atlas::containers::sl_list< T, Alloc >::pointer
template<typename T, typename Alloc>
typedef value_type& atlas::containers::sl_list< T, Alloc >::reference
template<typename T, typename Alloc>
typedef std::size_t atlas::containers::sl_list< T, Alloc >::size_type
template<typename T, typename Alloc>
typedef T atlas::containers::sl_list< T, Alloc >::value_type
template<typename T, typename Alloc>
typedef weak_sl_list_const_iterator<T, Alloc> atlas::containers::sl_list< T, Alloc >::weak_const_iterator
template<typename T, typename Alloc>
typedef weak_sl_list_iterator<T, Alloc> atlas::containers::sl_list< T, Alloc >::weak_iterator

Constructor & Destructor Documentation

template<typename T, typename Alloc>
atlas::containers::sl_list< T, Alloc >::sl_list ( )
inlineexplicit
template<typename T, typename Alloc>
atlas::containers::sl_list< T, Alloc >::sl_list ( const alloc_type a)
inlineexplicit
template<typename T, typename Alloc>
atlas::containers::sl_list< T, Alloc >::sl_list ( alloc_type &&  a)
inlineexplicit
template<typename T, typename Alloc>
atlas::containers::sl_list< T, Alloc >::sl_list ( const sl_list< T, Alloc > &  x)
inline
template<typename T, typename Alloc>
atlas::containers::sl_list< T, Alloc >::sl_list ( sl_list< T, Alloc > &&  x)
inline
template<typename T, typename Alloc>
atlas::containers::sl_list< T, Alloc >::sl_list ( simple_list< T, Alloc > &&  x)
inlineexplicit
template<typename T, typename Alloc>
template<typename InputIt , typename = typename std::enable_if< std::is_base_of<std::input_iterator_tag, typename std::iterator_traits<InputIt>::iterator_category >::value>::type>
atlas::containers::sl_list< T, Alloc >::sl_list ( InputIt  first,
InputIt  last,
const alloc_type a = alloc_type() 
)
inline
template<typename T, typename Alloc>
atlas::containers::sl_list< T, Alloc >::sl_list ( size_type  n,
const alloc_type a = alloc_type() 
)
inline
template<typename T, typename Alloc>
atlas::containers::sl_list< T, Alloc >::sl_list ( size_type  n,
const T &  x,
const alloc_type a = alloc_type() 
)
inline
template<typename T, typename Alloc>
atlas::containers::sl_list< T, Alloc >::sl_list ( std::initializer_list< T >  l,
const alloc_type a = alloc_type() 
)
inline
template<typename T, typename Alloc>
atlas::containers::sl_list< T, Alloc >::~sl_list ( )
inline

Member Function Documentation

template<typename T, typename Alloc>
void atlas::containers::sl_list< T, Alloc >::append ( sl_list< T, Alloc > &&  other)
inline
template<typename T, typename Alloc>
void atlas::containers::sl_list< T, Alloc >::assign ( size_type  n,
const T &  x 
)
inline
template<typename T, typename Alloc>
template<typename InputIt , typename = typename std::enable_if< std::is_base_of<std::input_iterator_tag, typename std::iterator_traits<InputIt>::iterator_category >::value>::type>
void atlas::containers::sl_list< T, Alloc >::assign ( InputIt  first,
InputIt  last 
)
inline
template<typename T, typename Alloc>
static bool atlas::containers::sl_list< T, Alloc >::at_end ( const_iterator  p)
inlinestatic
template<typename T, typename Alloc>
static bool atlas::containers::sl_list< T, Alloc >::at_end ( weak_const_iterator  p)
inlinestatic
template<typename T, typename Alloc>
iterator atlas::containers::sl_list< T, Alloc >::begin ( )
inline
template<typename T, typename Alloc>
const_iterator atlas::containers::sl_list< T, Alloc >::begin ( ) const
inline
template<typename T, typename Alloc>
const_iterator atlas::containers::sl_list< T, Alloc >::cbegin ( ) const
inline
template<typename T, typename Alloc>
const_iterator atlas::containers::sl_list< T, Alloc >::cend ( ) const
inline
template<typename T, typename Alloc>
void atlas::containers::sl_list< T, Alloc >::clear ( )
inline
template<typename T, typename Alloc>
template<typename... Args>
iterator atlas::containers::sl_list< T, Alloc >::emplace_back ( Args &&...  args)
inline
template<typename T, typename Alloc>
template<typename... Args>
void atlas::containers::sl_list< T, Alloc >::emplace_front ( Args &&...  args)
inline
template<typename T, typename Alloc>
bool atlas::containers::sl_list< T, Alloc >::empty ( ) const
inline
template<typename T, typename Alloc>
iterator atlas::containers::sl_list< T, Alloc >::end ( )
inline
template<typename T, typename Alloc>
const_iterator atlas::containers::sl_list< T, Alloc >::end ( ) const
inline
template<typename T, typename Alloc>
iterator atlas::containers::sl_list< T, Alloc >::erase ( const_iterator  pos)
inline
template<typename T, typename Alloc>
iterator atlas::containers::sl_list< T, Alloc >::erase ( const_iterator  first,
const_iterator  last 
)
inline
template<typename T, typename Alloc>
T& atlas::containers::sl_list< T, Alloc >::front ( )
inline
template<typename T, typename Alloc>
const T& atlas::containers::sl_list< T, Alloc >::front ( ) const
inline
template<typename T, typename Alloc>
const alloc_type& atlas::containers::sl_list< T, Alloc >::get_node_allocator ( ) const
inline
template<typename T, typename Alloc>
iterator atlas::containers::sl_list< T, Alloc >::insert ( const_iterator  pos,
const T &  val 
)
inline
template<typename T, typename Alloc>
iterator atlas::containers::sl_list< T, Alloc >::insert ( const_iterator  pos,
T &&  val 
)
inline
template<typename T, typename Alloc>
iterator atlas::containers::sl_list< T, Alloc >::insert ( const_iterator  pos,
size_type  n,
const T &  val 
)
inline
template<typename T, typename Alloc>
template<typename InputIt , typename = typename std::enable_if< std::is_base_of<std::input_iterator_tag, typename std::iterator_traits<InputIt>::iterator_category >::value>::type>
iterator atlas::containers::sl_list< T, Alloc >::insert ( const_iterator  pos,
InputIt  first,
InputIt  last 
)
inline
template<typename T, typename Alloc>
template<typename InputIt >
void atlas::containers::sl_list< T, Alloc >::move_assign ( InputIt  first,
InputIt  last 
)
inline
template<typename T, typename Alloc>
template<typename InputIt >
void atlas::containers::sl_list< T, Alloc >::move_insert ( const_iterator  pos,
InputIt  first,
InputIt  last 
)
inline
template<typename T, typename Alloc>
alloc_type& atlas::containers::sl_list< T, Alloc >::node_allocator ( )
inline
template<typename T, typename Alloc>
sl_list& atlas::containers::sl_list< T, Alloc >::operator= ( const sl_list< T, Alloc > &  x)
inline
template<typename T, typename Alloc>
sl_list& atlas::containers::sl_list< T, Alloc >::operator= ( sl_list< T, Alloc > &&  x)
inline
template<typename T, typename Alloc>
void atlas::containers::sl_list< T, Alloc >::pop_front ( )
inline
template<typename T, typename Alloc>
iterator atlas::containers::sl_list< T, Alloc >::push_back ( const T &  val)
inline
template<typename T, typename Alloc>
iterator atlas::containers::sl_list< T, Alloc >::push_back ( T &&  val)
inline
template<typename T, typename Alloc>
void atlas::containers::sl_list< T, Alloc >::push_front ( const T &  val)
inline
template<typename T, typename Alloc>
void atlas::containers::sl_list< T, Alloc >::push_front ( T &&  val)
inline
template<typename T, typename Alloc>
void atlas::containers::sl_list< T, Alloc >::reverse ( )
inline
template<typename T, typename Alloc>
void atlas::containers::sl_list< T, Alloc >::reverse ( const_iterator  from,
const_iterator  to 
)
inline
template<typename T, typename Alloc>
void atlas::containers::sl_list< T, Alloc >::set_empty ( )
inlineprivate
template<typename T, typename Alloc>
bool atlas::containers::sl_list< T, Alloc >::singleton ( ) const
inline
template<typename T, typename Alloc>
size_type atlas::containers::sl_list< T, Alloc >::size ( ) const
inline
template<typename T, typename Alloc>
iterator atlas::containers::sl_list< T, Alloc >::splice ( const_iterator  pos,
sl_list< T, Alloc > &&  other 
)
inline
template<typename T, typename Alloc>
void atlas::containers::sl_list< T, Alloc >::swap ( sl_list< T, Alloc > &  other)
inline
template<typename T, typename Alloc>
simple_list<T,Alloc> atlas::containers::sl_list< T, Alloc >::undress ( )
inline
template<typename T, typename Alloc>
weak_iterator atlas::containers::sl_list< T, Alloc >::wbegin ( )
inline
template<typename T, typename Alloc>
weak_const_iterator atlas::containers::sl_list< T, Alloc >::wbegin ( ) const
inline
template<typename T, typename Alloc>
weak_const_iterator atlas::containers::sl_list< T, Alloc >::wcbegin ( ) const
inline
template<typename T, typename Alloc>
weak_const_iterator atlas::containers::sl_list< T, Alloc >::wcend ( ) const
inline
template<typename T, typename Alloc>
weak_iterator atlas::containers::sl_list< T, Alloc >::wend ( )
inline
template<typename T, typename Alloc>
weak_const_iterator atlas::containers::sl_list< T, Alloc >::wend ( ) const
inline

Member Data Documentation

template<typename T, typename Alloc>
link_type atlas::containers::sl_list< T, Alloc >::head
private
template<typename T, typename Alloc>
size_type atlas::containers::sl_list< T, Alloc >::node_count
private
template<typename T, typename Alloc>
link_type* atlas::containers::sl_list< T, Alloc >::tail
private

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