In order to construct a header, two important pieces of information are needed:
the type of object which forms the elements.
the offset of the link object from the start of the element.
To create a header for a singly linked list of CMyClass
elements, defined as:
class CMyClass : public CBase
{
...
TSglQueLink iDlink;
...
};
construct a TSglQue
as follows:
TSglQue<CMyClass> queHeader(_FOFF(CMyClass,iSlink));
The TSglQue
class takes a class template parameter which
defines the type of object which is to form an element of the list. In this
example, objects of type CMyClass
form the elements of the
list.
The _FOFF
macro (i.e. the "field offset"
macro) calculates the offset of the component link object within the element.
In this example, the required value is the offset of the iSlink
data member from the start of CMyClass
.