template class axl::sl::IteratorBase

#include <axl_sl_Iterator.h>

template <
    typename T,
    typename Entry0,
    typename Link0,
    typename GetLink0
    >
class IteratorBase
{
public:
    // typedefs

    typedef Entry0 Entry;
    typedef Link0 Link;
    typedef GetLink0 GetLink;

    // construction

    IteratorBase();

    // methods

    operator const void *() const;

    T&
    operator++();

    T&
    operator--();

    T
    operator++(int);

    T
    operator--(int);

    T&
    operator+=(size_t count);

    T&
    operator-=(size_t count);

    T
    operator+(size_t count) const;

    T
    operator-(size_t count) const;

    T&
    next();

    T&
    prev();

    T&
    inc(intptr_t count);

    T
    getNext() const;

    T
    getPrev() const;

    T
    getInc(intptr_t count) const;

    Entry*
    getEntry() const;

    Link*
    getLink() const;

    static
    Entry*
    getEntryFromLink(Link* p);

    static
    Link*
    getLinkFromEntry(Entry* p);

    static
    T
    fromLink(Link* p);
};