CLASSNAME is assumed to be the name of a class which has a baseclass of ELIST2_LINK.
NOTE: Because we dont use virtual functions in the list code, the list code will NOT work correctly for classes derived from this.
The macro generates: - An element deletion function: CLASSNAME##_zapper - An element copier function: CLASSNAME##_copier - An element serialiser function" CLASSNAME##_serialiser - An element de-serialiser function" CLASSNAME##_de_serialiser - An E_LIST2 subclass: CLASSNAME##_LIST - An E_LIST2_ITERATOR subclass: CLASSNAME##_IT
NOTE: Generated names are DELIBERATELY designed to clash with those for ELISTIZE but NOT with those for CLISTIZE and CLIST2IZE
Four macros are provided: ELIST2IZE, ELIST2IZE_S, ELIST2IZEH and ELIST2IZEH_S The ...IZEH macros just define the class names for use in .h files The ...IZE macros define the code use in .c files The _S versions define lists which can be serialised. They assume that the make_serialise() macro is used in the list element class derived from ELIST2_LINK to define serialise() and de_serialise() members for the list elements.