template<typename T>
sead::TList class

Base classes

class ListImpl

Public types

class iterator
class robustIterator
struct RobustRange
using CompareCallback = int(*)(const T*, const T*)

Constructors, destructors, conversion operators

TList()
__attribute__((always_inline))

Public functions

void pushBack(TListNode<T>* item)
void pushFront(TListNode<T>* item)
auto popBack() -> TListNode<T>*
auto popFront() -> TListNode<T>*
void insertBefore(TListNode<T>* node, TListNode<T>* node_to_insert)
void insertAfter(TListNode<T>* node, TListNode<T>* node_to_insert)
void erase(TListNode<T>* item)
auto front() const -> TListNode<T>*
auto back() const -> TListNode<T>*
auto nth(int n) const -> TListNode<T>*
auto indexOf(const TListNode<T>* node) const -> s32
void swap(TListNode<T>* n1, TListNode<T>* n2)
void moveAfter(TListNode<T>* basis, TListNode<T>* n)
void moveBefore(TListNode<T>* basis, TListNode<T>* n)
void sort(s32 offset, CompareCallback cmp)
void mergeSort(s32 offset, CompareCallback cmp)
auto find(const void* ptr, s32 offset, CompareCallback cmp) const -> TListNode<T>*
void uniq(s32 offset, CompareCallback cmp)
void clear()
auto prev(const TListNode<T>* node) const -> TListNode<T>*
auto next(const TListNode<T>* node) const -> TListNode<T>*
auto begin() const -> iterator
auto end() const -> iterator
auto robustBegin() const -> robustIterator
auto robustEnd() const -> robustIterator
auto robustRange() const -> RobustRange
auto isEmpty() const -> bool
auto size() const -> s32
void reverse()
void shuffle()
void shuffle(Random* random)
auto checkLinks() const -> bool

Protected types

using CompareCallbackImpl = int(*)(const void*, const void*)

Protected static functions

template<class T, class ComparePredicate>
static void mergeSortImpl_(ListNode* front, ListNode* back, s32 num, s32 offset, const ComparePredicate& predicate)

Protected functions

template<class T, class ComparePredicate>
void sort(s32 offset, const ComparePredicate& cmp)
template<class T, class ComparePredicate>
void mergeSort(s32 offset, const ComparePredicate& cmp)
void pushBack(ListNode* item)
void pushFront(ListNode* item)
void insertBefore(ListNode* node, ListNode* node_to_insert)
void insertAfter(ListNode* node, ListNode* node_to_insert)
void erase(ListNode* item)
auto indexOf(const ListNode*) const -> s32
void swap(ListNode* n1, ListNode* n2)
void moveAfter(ListNode* basis, ListNode* n)
void moveBefore(ListNode* basis, ListNode* n)
auto find(const void* ptr, s32 offset, CompareCallbackImpl cmp) const -> ListNode*
void uniq(s32 offset, CompareCallbackImpl cmp)

Protected variables

ListNode mStartEnd
s32 mCount

Typedef documentation

template<typename T>
using sead::TList<T>::CompareCallbackImpl = int(*)(const void*, const void*) protected

Function documentation

template<typename T>
sead::TList<T>::__attribute__((always_inline))

template<typename T>
bool sead::TList<T>::isEmpty() const

template<typename T>
s32 sead::TList<T>::size() const

template<typename T>
void sead::TList<T>::reverse()

template<typename T>
void sead::TList<T>::shuffle()

template<typename T>
void sead::TList<T>::shuffle(Random* random)

template<typename T>
bool sead::TList<T>::checkLinks() const

template<typename T> template<class T, class ComparePredicate>
static void sead::TList<T>::mergeSortImpl_(ListNode* front, ListNode* back, s32 num, s32 offset, const ComparePredicate& predicate) protected

template<typename T> template<class T, class ComparePredicate>
void sead::TList<T>::sort(s32 offset, const ComparePredicate& cmp) protected

template<typename T> template<class T, class ComparePredicate>
void sead::TList<T>::mergeSort(s32 offset, const ComparePredicate& cmp) protected

template<typename T>
void sead::TList<T>::pushBack(ListNode* item) protected

template<typename T>
void sead::TList<T>::pushFront(ListNode* item) protected

template<typename T>
void sead::TList<T>::insertBefore(ListNode* node, ListNode* node_to_insert) protected

template<typename T>
void sead::TList<T>::insertAfter(ListNode* node, ListNode* node_to_insert) protected

template<typename T>
void sead::TList<T>::erase(ListNode* item) protected

template<typename T>
s32 sead::TList<T>::indexOf(const ListNode*) const protected

template<typename T>
void sead::TList<T>::swap(ListNode* n1, ListNode* n2) protected

template<typename T>
void sead::TList<T>::moveAfter(ListNode* basis, ListNode* n) protected

template<typename T>
void sead::TList<T>::moveBefore(ListNode* basis, ListNode* n) protected

template<typename T>
ListNode* sead::TList<T>::find(const void* ptr, s32 offset, CompareCallbackImpl cmp) const protected

template<typename T>
void sead::TList<T>::uniq(s32 offset, CompareCallbackImpl cmp) protected

Variable documentation

template<typename T>
ListNode sead::TList<T>::mStartEnd protected

template<typename T>
s32 sead::TList<T>::mCount protected