The ClassDef() macro is designed with the assumption that the classes being defined will have a base class which has a Streamer() function. This is not always true. Use of the M4 macro preprocessor would allow the line virtual void Streamer(TBuffer &b); \ to not be added during expansion of the ClassDef() if the id is zero. As it stands, I am faced with pursuing one of two unsavory alternatives: 1: Comment out the Streamer() method in the ROOT Rtypes.h header file. 2: Subclassing all my classes to the ROOT system. #define ClassDef(name,id) \ private: \ static TClass *fgIsA; \ public: \ static const char *DeclFileName() { return __FILE__; } \ static int DeclFileLine() { return __LINE__; } \ static const char *ImplFileName(); \ static int ImplFileLine(); \ static Version_t Class_Version() { return id; } \ static TClass *Class(); \ static void Dictionary(); \ virtual TClass *IsA() const { return name::Class(); } \ virtual void ShowMembers(TMemberInspector &insp, char *parent); \ virtual void Streamer(TBuffer &b); \ friend TBuffer &operator>>(TBuffer &buf, name *&obj); -- o============o Sending unsolicited commercial e-mail (UCE) to this address Legal Notice is indication of your consent to pay me $120/hour for 1 hour o============o minimum for professional proofreading & technical assessment. Terrence Brannon * brannon@quake.usc.edu * http://quake.usc.edu/~brannon
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:26:19 MET