Listing 1 A simple version of generic.h

//
// generic.h - macros for implementing generic classes
//
#ifndef GENERIC_H_INCLUDED
#define GENERIC_H_INCLUDED

#define name2(n1, n2) _name2(n1, n2)
#define _name2(n1, n2) n1 ## n2

#define declare(c, t) name2(c, declare)(t)
#define implement(c, t) name2(c, implement)(t)

#endif

/* End of File */