9#ifndef HPP_ALIB_LANG_SIDILIST
10#define HPP_ALIB_LANG_SIDILIST 1
61template<
typename TElement>
106 TElement*
next()
const {
return n; }
126 auto* result=
next();
142 TElement* result=
next();
143 next( last->next() );
152 TElement* result = elem->next();
169 while( start != end )
171 start= start->
next();
190template<
typename TElement>
244 last->next(this->
first());
252 TElement* result=
first();
267 TElement* elem=
first();
268 while( elem->hasNext() )
277 TElement*
findLast( TElement* hint )
const noexcept
279 TElement* elem= hint;
280 while( elem->hasNext() )
295 return static_cast<TElement*
>( it );
platform_specific integer
TElement * popFront() noexcept
void reset() noexcept
Resets this list to zero elements.
void pushFront(TElement *elem) noexcept
TElement * findLastBefore(TElement *elem) noexcept
integer count(TElement *end=nullptr) const noexcept
TElement * findLast(TElement *hint) const noexcept
TElement * findLast() const noexcept
TNode * findAndRemove(TElement *elem) noexcept
TElement * first() const noexcept
SidiListHook(SidiListHook &&) noexcept=default
SidiListHook() noexcept
Default constructor. Initializes this list to be empty.
bool isEmpty() const noexcept
SidiListHook(const SidiListHook ©)=delete
void pushFront(TElement *first, TElement *last)
TElement * removeNext() noexcept
void next(SidiNodeBase *p)
bool pointsTo(const SidiNodeBase *elem) const
TElement * removeRangeBehind(TElement *last) noexcept
SidiNodeBase() noexcept=default
Default constructor. (Does not initialize the pointer.)
TElement * addBehind(TElement *elem) noexcept
integer count(SidiNodeBase *end=nullptr) const noexcept