hi root guys - PHOBOS is trying to move to ROOT3, which is going well, but for a few hiccups. here's one: my class has a member: class TPhMapSet { ... TPhPadMap** fMaps; // List of map pointers ... } what i find in the rootcint generated code is a few things: ------------------------------------------------------------------------- void TPhMapSet::ShowMembers(TMemberInspector &R__insp, char *R__parent) { // Inspect the data members of an object of class TPhMapSet. ... R__cl->SetStreamer("*fMaps",R__TPhMapSet_fMaps); ... } AND void R__TPhMapSet_fMaps(TBuffer &R__b, void *R__p, int) { TPhPadMap*** fMaps = (TPhPadMap***)R__p; if (R__b.IsReading()) { R__b >> *fMaps; } else { R__b << (TObject*)*fMaps; } } ------------------------------------------------------------------------ clearly the problem is that the compiler cannot find any function to match R__b >> *fMaps; the thing is that this problem does not occur in ROOT2.25.02, where in TPhMapSet::ShowMembers i get the code R__insp.Inspect(R__cl, R__parent, "*fMaps", &fMaps); which is the same as the other members in the class, unlike the ROOT3 version, which is different (i.e. with a SetStreamer). Interestingly, this mechanism has no problems with basic types and ROOT classes. do i need to add a new operator to my class, or can i fix this in the LinkDef? Thanks, Peter --------------------------------------------------------------------------- Dr. Peter A. Steinberg Brookhaven National Laboratory Assistant Scientist Bldg 555, Upton NY, 11973 Office: 631-344-4390 mailto:Peter.Steinberg@bnl.gov Mobile: 917-549-3094 http://www.rhic.bnl.gov/~steinber ---------------------------------------------------------------------------
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:41 MET