template class axl::sl::CppList

#include <axl_sl_List.h>

template <
    typename T,
    typename GetLink = ImplicitPtrCast<T, ListLink>
    >
class CppList: public axl::sl::List
{
};

Inherited Members

public:
    // typedefs

    typedef T Entry;
    typedef GetLink0 GetLink;
    typedef Iterator0 Iterator;
    typedef ConstIterator0 ConstIterator;
    typedef sl::ListData<T> ListData;
    typedef Delete0 Delete;

    // fields

    T* m_head;
    T* m_tail;
    size_t m_count;

    // methods

    bool
    isEmpty() const;

    const ListData*
    getListData() const;

    size_t
    getCount() const;

    Iterator
    getHead();

    ConstIterator
    getHead() const;

    Iterator
    getTail();

    ConstIterator
    getTail() const;

    T*
    remove(Iterator it);

    T*
    removeHead();

    T*
    removeTail();

    Iterator
    insertHead(T* p);

    Iterator
    insertTail(T* p);

    Iterator
    insertBefore(
        T* p,
        Iterator before
        );

    Iterator
    insertAfter(
        T* p,
        Iterator after
        );

    void
    insertListHead(ListBase* src);

    void
    insertListTail(ListBase* src);

    void
    moveBefore(
        Iterator it,
        Iterator before
        );

    void
    moveAfter(
        Iterator it,
        Iterator after
        );

    void
    moveToHead(Iterator it);

    void
    moveToTail(Iterator it);

    bool
    sort();

    template <typename Compare>
    bool
    sort(Compare compare);

    void
    clear();

    bool
    clearButHead();

    bool
    clearButTail();

    void
    erase(Iterator it);

    void
    eraseHead();

    void
    eraseTail();