RE: [ROOT] cannot create object of class TIter

From: Axel Naumann (axel@fnal.gov)
Date: Sat Oct 18 2003 - 00:19:36 MEST


Hi,

I believe this is a great idea by Philippe. It is still general: a member is
skipped if it doesn't have a streamer (is that right, Philippe, did I
interpret that correctly?). So there's no real change if you stick to the
old rules, it just simplifies life a bit: instead of root just failing it
will do the best job it can storing an object. But I think a warning should
be issued if there is no //! to make sure the author of the class knows
what's happening. Maybe also a hint in the class documentation would be
helpful, stating whether it's streamable or not. I'll add the latter over
the weekend, if people (rootdev? you?) think it's helpful.

Axel.

> -----Original Message-----
> From: owner-roottalk@pcroot.cern.ch
> [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of cstrato
> Sent: Friday, October 17, 2003 4:25 PM
> To: Philippe Canal
> Cc: roottalk@pcroot.cern.ch
> Subject: Re: [ROOT] cannot create object of class TIter
>
>
> Dear Philippe
>
> Although this may be helpful for root programers, I am not sure if
> this is a good idea for the following reason:
>
> Until now there is a clear rule, that you have to use //! if you want to
> prevent that an object is saved. People who are reading the header
> files can see immediately, which objects will not be saved. Now you
> are introducing exceptions, which make the code less readable.
>
> In my opinion it would be better to list all classes that are not savable,
> in the root manual at the page where //! is explained.
>
> However, please regard this as my personal opinion.
>
> Best regards
> Christian
> _._._._._._._._._._._._._._._._
> C.h.i.s.t.i.a.n S.t.r.a.t.o.w.a
> V.i.e.n.n.a       A.u.s.t.r.i.a
> _._._._._._._._._._._._._._._._
>
>
>
> Philippe Canal wrote:
>
> >Hi Ondrej,
> >
> >We updated the ROOT code in CVS so that you original code would work
> >properly.  I.e. it would __silently__ not save your TIter object.  To
> >__know__ that the TIter object are not saveable you have to look up the
> >class definition/documentation and notice the statement:
> >	ClassDef(TIter,0);
> >A few other classes in the ROOT code are not saveable.  From now
> on you will
> >be able to have data member to those and the system will
> automatically mark
> >them as transient.
> >
> >Cheers,
> >Philippe.
> >
> >
> >
> >
>
>
>



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:16 MET