Hi Peter,
The code generated automatically by rootcint will only work for
objects derived from TObject or objects having the I/O operators >>, <<
defined.
If your ** is a list of pointers, Root has also no way no loop
on the list. With version 3.00/06, you can specify the length
of the array in the comment field of the member in case the length
is itself a class member. See an example at
http://root.cern.ch/root/SchemaEvolution.html
I strongly suggest to use containers like TObjArray instead.
Rene Brun
On Wed, 4 Apr 2001, Peter Steinberg wrote:
>
> 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