Re: [ROOT] semi custom streamers

From: Andre Holzner (Andre.Holzner@cern.ch)
Date: Thu Aug 30 2001 - 15:35:32 MEST


Hello, 

(sorry for replying late, but I was away the last two weeks).

Rene Brun wrote:
> 
> Hi Andre,
> You do not have to modify rootcint to get what you want. Proceed as
> follow:
>  - in LinkDef.h select option -
>    #pragma link C++ class MyClass-;
>  - In your member declaration use the "!" to declare it non persistent
>    vector<vector<Double_t> >  myVector;   //!
> 
>  - The default Streamer function for MyClass is:
...
 
>  - Extend this Streamer function Streamer function with the code
>    necessary to Stream the vector

great... works now perfectly. The only problem I had now
was that I had a pointer to a class (say A) which I wrote out. In one
case, this points to an instance of class B (which inherits from A)
and this was not correctly read back (i.e. it was read back
as an instance of A, not B). However, leaving out the
//-> in the .h file solved this problem.

> With STL, one can build quickly very complex constructs. Currently
> the automatic I/O supports only one level of arguments.

I looked at the corresponding code in rootcint but it seems not
to be easy (at least to me) to extend this code to arbitrary nesting
depths.


best regards & thanks a lot,

André

-- 
------------------+----------------------------------
Andre Holzner     | +41 22 76 76750 
Bureau 32 2-C13   | Building 32     
CERN              | Office 2-C13    
CH-1211 Geneve 23 | http://wwweth.cern.ch/~holzner/



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:59 MET