template<typename TElement>
struct alib::lang::SidiListHook< TElement >
This class, together with sibling class lang::SidiNodeBase provide the tools to implement a single linked list of TElement instances.
- See also
- Types lang::SidiNodeBase,
 lang::BidiNodeBase, and
 lang::BidiListHook.
- Template Parameters
- 
  
  
Definition at line 185 of file sidilist.inl.
◆ TNode
template<typename TElement> 
      
 
 
◆ SidiListHook() [1/3]
template<typename TElement> 
 
Default constructor. Initializes this list to be empty. 
Definition at line 191 of file sidilist.inl.
 
 
◆ SidiListHook() [2/3]
template<typename TElement> 
 
Deleted copy constructor. 
- Note
- Copy construction is a duty of derived usable types. 
 
 
◆ SidiListHook() [3/3]
template<typename TElement> 
 
Move constructor. Copies the link from move and sets the link of move to nullptr. 
 
 
◆ count()
template<typename TElement> 
 
Counts the number of elements found in the range starting with this list's first element and ending with the element before end. 
- Parameters
- 
  
    | end | The element after the last one to count. Defaults to a nullptrmarking the end of the list. |  
 
- Returns
- The number of elements in the range. 
Definition at line 316 of file sidilist.inl.
 
 
◆ findAndRemove()
template<typename TElement> 
 
Searches the predecessor of the given element using findLastBefore and unhooks the element from the list. 
- Attention
- It is not checked whether a predecessor was found, aka whether elem is an element of this list. If not, the behavior is undefined (nullptr access).
 Furthermore, the successor of given elem is not changed, although it is removed from the list.
- Parameters
- 
  
    | elem | The element to remove. |  
 
- Returns
- The node (this object) or element that pointed to given elem before the invocation and now points to the successor of elem. 
Definition at line 303 of file sidilist.inl.
 
 
◆ findLast() [1/2]
template<typename TElement> 
 
Searches and returns the last element. 
- Note
- This method must only be invoked on non-empty lists (isEmpty returns false). Otherwise, this method has undefined behavior (dereference of anullptr). To find the pointer to the last element, use findLastBefore providingnullptr.
- Returns
- The last element of this list. 
Definition at line 259 of file sidilist.inl.
 
 
◆ findLast() [2/2]
template<typename TElement> 
 
Searches and returns the last element. 
- Parameters
- 
  
    | hint | An element of this list used to start the search. |  
 
- Returns
- The last element of this list. 
Definition at line 271 of file sidilist.inl.
 
 
◆ findLastBefore()
template<typename TElement> 
 
Searches the node or element that points to the given element. 
- Attention
- The element has to exist. Otherwise, a nullptrexception will occur!
- Parameters
- 
  
    | elem | The element to search for. |  
 
- Returns
- The node (this object) or element pointing to elem. 
Definition at line 284 of file sidilist.inl.
 
 
◆ first()
template<typename TElement> 
 
Returns the start element of this list. 
- Returns
- The first element of this list, respectively nullptrif this list is empty.
Definition at line 223 of file sidilist.inl.
 
 
◆ isEmpty()
template<typename TElement> 
 
Tests if this list is empty. 
- Returns
- falseif the list is empty,- trueotherwise.
Definition at line 215 of file sidilist.inl.
 
 
◆ operator=() [1/2]
template<typename TElement> 
 
Deleted copy assignment operator. 
- Returns
- Not applicable 
 
 
◆ operator=() [2/2]
template<typename TElement> 
 
Move assignment operator. Copies the link to the first element from move and sets the link in move to nullptr. 
- Returns
- A reference to this list object. 
 
 
◆ popFront()
template<typename TElement> 
 
Removes and returns the first element from this list. 
- Returns
- A pointer to the element, respectively nullptrif the list was empty.
Definition at line 244 of file sidilist.inl.
 
 
◆ pushFront() [1/2]
template<typename TElement> 
 
Hooks the given element to the beginning of this list. 
- Parameters
- 
  
    | elem | The element to insert to at the start. |  
 
Definition at line 227 of file sidilist.inl.
 
 
◆ pushFront() [2/2]
template<typename TElement> 
 
Hooks the given range of elements to the front of this list. 
- Parameters
- 
  
    | first | The first element of the range to insert. |  | last | The last element of the range to insert. |  
 
Definition at line 236 of file sidilist.inl.
 
 
◆ reset()
template<typename TElement> 
 
Resets this list to zero elements. 
Definition at line 218 of file sidilist.inl.
 
 
The documentation for this struct was generated from the following file: