18#ifndef TRINITYCORE_LINKED_LIST_H
19#define TRINITYCORE_LINKED_LIST_H
40 return iNext !=
nullptr
121 front_impl<LinkedListElement>()->delink();
126 back_impl<LinkedListElement>()->delink();
134 for (
auto itr = begin_impl<LinkedListElement>(); itr != end_impl<LinkedListElement>(); ++itr)
146 template <
typename _Ty>
214 template <
typename T>
217 template <
typename T>
220 template <
typename T>
223 template <
typename T>
226 template <
typename T>
229 template <
typename T>
232 template <
typename T>
235 template <
typename T>
243 lastPrev->
iNext = where;
244 where->
iPrev = lastPrev;
245 firstPrev->
iNext = last;
246 last->
iPrev = firstPrev;
247 wherePrev->
iNext = first;
248 first->
iPrev = wherePrev;
251 template <
typename T>
LinkedListElement & operator=(LinkedListElement const &)=delete
LinkedListElement * iPrev
void insertAfter(LinkedListElement *pElem)
LinkedListElement(LinkedListElement &&)=delete
LinkedListElement * prev()
LinkedListElement const * next() const
LinkedListElement(LinkedListElement const &)=delete
LinkedListElement const * prev() const
LinkedListElement & operator=(LinkedListElement &&)=delete
void insertBefore(LinkedListElement *pElem)
LinkedListElement * next()
LinkedListElement * iNext
bool operator==(Iterator const &_Right) const =default
std::bidirectional_iterator_tag iterator_category
ptrdiff_t difference_type
base_pointer node() const
Iterator(base_pointer _Pnode)
std::conditional_t< std::is_const_v< _Ty >, LinkedListElement const, LinkedListElement > * base_pointer
reference operator*() const
pointer operator->() const
Iterator< T const > begin_impl() const
LinkedListHead & operator=(LinkedListHead const &)=delete
LinkedListElement iHeader
void splice_impl(Iterator< T > where, Iterator< T > first, Iterator< T > last)
T const * back_impl() const
Iterator< T > begin_impl()
LinkedListHead & operator=(LinkedListHead &&)=delete
void push_back(LinkedListElement *pElem)
void splice_impl(LinkedListElement *where, LinkedListElement *first, LinkedListElement *last)
Iterator< T const > end_impl() const
void push_front(LinkedListElement *pElem)
LinkedListHead(LinkedListHead &&)=delete
T const * front_impl() const
LinkedListHead(LinkedListHead const &)=delete