How to construct an iterator

An iterator allows you to access each element of the list in turn.

To create an iterator for a singly linked list of CMyClass elements, defined as:

class CMyClass : public CBase
    {
    ...
    TSglQueLink iSlink;
    ...
    };

first construct a Header:

TSglQue<CMyClass> queHeader(_FOFF(CMyClass,iSlink));

and then construct the Iterator. The iterator requires the header at construction time but the list can be empty:

TSglQueIter<CMyClass> queIter(queHeader);

The TSglQueIter class takes a class template parameter that defines the type of object which is to form an element of the list.