Re: [ROOT] slpitlevel

From: Rene Brun (Rene.Brun@cern.ch)
Date: Fri Nov 10 2000 - 13:27:15 MET


Hi Thomas,
With the current PRO version 2.25/03, you have to do:

class A : public TObject
{
   B *b; // i this the right way   
}

class B : public TObject
{
   Int_t   n;     //length of the array bytes
   Byte_t *bytes; //[n] an array with a variable number of entries 
}

I am currently working on an important improvement in the Root I/O system.
I will post more info in the very near future. With this new version,
the split and no-split mode will be symmetric and will use the same code.
You should be able to have a TArrayX *array as a class member and also
STL containers.
For the time being use the above work around.

Rene Brun

Thomas Bretz wrote:
> 
> Hello,
> 
> in the documetation you wrote:
> In split mode, a data member cannot be a pointer to an array of basic
> types. A variable size array must be encapsulated inside another object
> derived by TObject.
> 
> What does this mean?
> 
> Eg, if I have:
> -------------------------------
> class A : public TObject
> {
>    B *b; // i this the right way
>    B c;  // or this?
> }
> 
> class B : public TObject
> {
>    Byte_t *bytes; // an array which contains a variable number of
> entries at runtime
> }
> -------------------------------
> 
> Can I write class B now in a branch with splitleven=1? Does this mean,
> that the only problem to write a TArrayC with splitlevel=1 is that it
> isn't derived from TObject?
> 
> Thanks,
> Thomas.



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:37 MET