SLListBase Class Reference

Base for singly-linked lists. More...

Classes

class  const_iterator
 A primitive const node iterator. More...
 
class  iterator
 A primitive non-const node iterator. More...
 
struct  link
 The structure for a singly-linked storage node. More...
 

Public Member Functions

 SLListBase ()=default
 Default construct. More...
 
 SLListBase (const SLListBase &)=delete
 No copy construct. More...
 
void operator= (const SLListBase &)=delete
 No copy assignment. More...
 
 ~SLListBase ()=default
 Destructor. More...
 
bool empty () const noexcept
 True if the list is empty. More...
 
label size () const noexcept
 The number of elements in list. More...
 
linkfront ()
 Return first entry. More...
 
const linkfront () const
 Return const access to first entry. More...
 
linkback ()
 Return last entry. More...
 
const linkback () const
 Return const access to last entry. More...
 
void push_front (link *item)
 Add at front of list. More...
 
void push_back (link *item)
 Add at back of list. More...
 
linkremoveHead ()
 Remove and return first entry. More...
 
linkremove (link *item)
 
linkremove (iterator &iter)
 
void clear ()
 Clear the list. More...
 
void swap (SLListBase &lst)
 Swap the contents of list. More...
 
void transfer (SLListBase &lst)
 Transfer the contents of the argument into this list and annul the argument list. More...
 
iterator begin ()
 Iterator to first item in list with non-const access. More...
 
const_iterator cbegin () const
 Iterator to first item in list with const access. More...
 
const_iterator crbegin () const =delete
 No reverse iteration. More...
 
const iteratorend ()
 End of list for iterators. More...
 
const const_iteratorcend () const
 End of list for iterators. More...
 
const const_iteratorcrend () const =delete
 No reverse iteration. More...
 
linkfirst ()
 Return first entry. More...
 
const linkfirst () const
 Return const access to first entry. More...
 
linklast ()
 Return last entry. More...
 
const linklast () const
 Return const access to last entry. More...
 
void prepend (link *item)
 Add at front of list. More...
 
void append (link *item)
 Add at back of list. More...
 

Protected Member Functions

template<class IteratorType >
IteratorType iterator_first () const
 Return iterator to first item or end-iterator if list is empty. More...
 
template<class IteratorType >
IteratorType iterator_last () const
 Return iterator to last item or end-iterator if list is empty. More...
 

Static Protected Member Functions

template<class IteratorType >
static const IteratorType & iterator_end ()
 Factory method to return an iterator end. More...
 
template<class IteratorType >
static const IteratorType & iterator_rend ()=delete
 Factory method to return an iterator rend. More...
 

Friends

class iterator
 
class const_iterator
 

Detailed Description

Base for singly-linked lists.

The iterators associated with the list only have a core functionality for navigation, with additional functionality to be added by inheriting classes. The node iterators always have a node-pointer as the first member data, which allows reinterpret_cast from anything else with a nullptr as its first data member. The nullObject is such an item (with a nullptr data member).

Source files

Definition at line 57 of file SLListBase.H.

Constructor & Destructor Documentation

◆ SLListBase() [1/2]

SLListBase ( )
default

Default construct.

◆ SLListBase() [2/2]

SLListBase ( const SLListBase )
delete

No copy construct.

◆ ~SLListBase()

~SLListBase ( )
default

Destructor.

Member Function Documentation

◆ iterator_end()

const IteratorType & iterator_end ( )
inlinestaticprotected

Factory method to return an iterator end.

Simply reinterprets a NullObject as a SLListBase iterator.

Definition at line 28 of file SLListBaseI.H.

References Foam::nullObjectPtr.

◆ iterator_rend()

static const IteratorType& iterator_rend ( )
staticprotecteddelete

Factory method to return an iterator rend.

Deleted for SLListBase

◆ iterator_first()

IteratorType iterator_first ( ) const
inlineprotected

Return iterator to first item or end-iterator if list is empty.

Removes constness which the caller promises to manage.

Definition at line 35 of file SLListBaseI.H.

◆ iterator_last()

IteratorType iterator_last ( ) const
inlineprotected

Return iterator to last item or end-iterator if list is empty.

Removes constness which the caller promises to manage.

Definition at line 50 of file SLListBaseI.H.

◆ operator=()

void operator= ( const SLListBase )
delete

No copy assignment.

◆ empty()

bool empty ( ) const
inlinenoexcept

True if the list is empty.

Definition at line 175 of file SLListBase.H.

◆ size()

label size ( ) const
inlinenoexcept

The number of elements in list.

Definition at line 180 of file SLListBase.H.

◆ front() [1/2]

Foam::SLListBase::link * front ( )
inline

Return first entry.

Definition at line 67 of file SLListBaseI.H.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Referenced by SLListBase::first().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ front() [2/2]

const Foam::SLListBase::link * front ( ) const
inline

Return const access to first entry.

Definition at line 80 of file SLListBaseI.H.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ back() [1/2]

Foam::SLListBase::link * back ( )
inline

Return last entry.

Definition at line 93 of file SLListBaseI.H.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Referenced by SLListBase::last().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ back() [2/2]

const Foam::SLListBase::link * back ( ) const
inline

Return const access to last entry.

Definition at line 106 of file SLListBaseI.H.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ push_front()

void push_front ( SLListBase::link item)

Add at front of list.

Definition at line 27 of file SLListBase.C.

References SLListBase::link::next_.

Referenced by SLListBase::prepend().

Here is the caller graph for this function:

◆ push_back()

void push_back ( SLListBase::link item)

Add at back of list.

Definition at line 49 of file SLListBase.C.

References SLListBase::link::next_.

Referenced by SLListBase::append().

Here is the caller graph for this function:

◆ removeHead()

Foam::SLListBase::link * removeHead ( )

Remove and return first entry.

Definition at line 70 of file SLListBase.C.

References Foam::abort(), SLListBase::link::deregister(), Foam::FatalError, FatalErrorInFunction, and SLListBase::link::next_.

Here is the call graph for this function:

◆ remove() [1/2]

◆ remove() [2/2]

Foam::SLListBase::link * remove ( SLListBase::iterator iter)
inline

Definition at line 152 of file SLListBaseI.H.

◆ clear()

void clear ( )
inline

Clear the list.

Definition at line 118 of file SLListBaseI.H.

Referenced by SLListBase::transfer().

Here is the caller graph for this function:

◆ swap()

void swap ( SLListBase lst)
inline

Swap the contents of list.

Definition at line 125 of file SLListBaseI.H.

◆ transfer()

void transfer ( SLListBase lst)
inline

Transfer the contents of the argument into this list and annul the argument list.

Definition at line 137 of file SLListBaseI.H.

References SLListBase::clear().

Here is the call graph for this function:

◆ begin()

Foam::SLListBase::iterator begin ( )
inline

Iterator to first item in list with non-const access.

Definition at line 230 of file SLListBaseI.H.

References stdFoam::end().

Here is the call graph for this function:

◆ cbegin()

Foam::SLListBase::const_iterator cbegin ( ) const
inline

Iterator to first item in list with const access.

Definition at line 326 of file SLListBaseI.H.

References stdFoam::cend().

Here is the call graph for this function:

◆ crbegin()

const_iterator crbegin ( ) const
delete

No reverse iteration.

◆ end()

const Foam::SLListBase::iterator & end ( )
inline

End of list for iterators.

Definition at line 242 of file SLListBaseI.H.

◆ cend()

const Foam::SLListBase::const_iterator & cend ( ) const
inline

End of list for iterators.

Definition at line 249 of file SLListBaseI.H.

◆ crend()

const const_iterator& crend ( ) const
delete

No reverse iteration.

◆ first() [1/2]

link* first ( )
inline

Return first entry.

FOAM_DEPRECATED_FOR(2022-10, "front()")

Definition at line 420 of file SLListBase.H.

References SLListBase::front().

Here is the call graph for this function:

◆ first() [2/2]

const link* first ( ) const
inline

Return const access to first entry.

FOAM_DEPRECATED_FOR(2022-10, "front()")

Definition at line 427 of file SLListBase.H.

References SLListBase::front().

Here is the call graph for this function:

◆ last() [1/2]

link* last ( )
inline

Return last entry.

FOAM_DEPRECATED_FOR(2022-10, "back()")

Definition at line 434 of file SLListBase.H.

References SLListBase::back().

Here is the call graph for this function:

◆ last() [2/2]

const link* last ( ) const
inline

Return const access to last entry.

FOAM_DEPRECATED_FOR(2022-10, "back()")

Definition at line 441 of file SLListBase.H.

References SLListBase::back().

Here is the call graph for this function:

◆ prepend()

void prepend ( link item)
inline

Add at front of list.

FOAM_DEPRECATED_FOR(2022-10, "push_front()")

Definition at line 448 of file SLListBase.H.

References SLListBase::push_front().

Here is the call graph for this function:

◆ append()

void append ( link item)
inline

Add at back of list.

FOAM_DEPRECATED_FOR(2022-10, "push_back()")

Definition at line 455 of file SLListBase.H.

References SLListBase::push_back().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ iterator

friend class iterator
friend

Definition at line 140 of file SLListBase.H.

◆ const_iterator

friend class const_iterator
friend

Definition at line 143 of file SLListBase.H.


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