It sounds we can not compile any STAR TTable derived class with the new ROOT. "as is". Does this suggest we have to change our existent TTable classes definitions ? I understand the coming ROOT offers a new way to generate the class Dictionary. but does this means the old approach will not work anymore. I would vote for ROOT v. 4 as Christian suggested. Valeri > Hi Christian, > > The new version of ClassDef should be backward compatible. > If you (or somebody else) have an evidence that this is not the case, please let > us know asap. > > The version now in CVS includes several enhancements (mainly by Philippe) > The new ClassDef/ClassImp have been simplified , in particular > when using templates and namespaces. > > The main new development is the automatic support for classes > not instrumented with ROOT ClassDef, TObject, nested classes, etc. > > We will give more information on these new developments soon. > > It is not our intention to increase the version number to 4 at this point. > > Rene Brun > > Christian Holm Christensen wrote: > > > > Hi all, > > > > I did a check out of ROOT today, and it seems that there's quite a lot > > of changes in the definition of ClassDef and the like. Also, there's > > some namespace stuff in the generated dictionary and so. Anyway, the > > effect of all this, which I don't know if it's intentional or not, is > > that now you can use nested classes directly. That is, like for > > example: > > > > class Mother : public TObject { > > private: > > TClonesArray* fChildren; > > public: > > class Child : public TObject { > > private: > > Int_t fNumber; > > public: > > Child(Int_t n) : fNumber(n) {} > > Int_t GetNumber() const { return fNumber; } > > ClassDef(Child, 1); > > }; > > > > Mother() : fChildren("Mother::Child") {} > > void AddChild() { > > Int_t n = fChildren.GetEntries(); > > new(fChildren[n]) Child(n); > > } > > Child* GetChild(Int_t n) { > > if (n > fChildren.GetEntries() || n < 0) return 0; > > (Child*)return fChildren[n]; > > } > > ClassDef(Foo,0) // > > }; > > > > Previously you had to redefine ClassDef so that CINT wouldn't choke on > > some friend declarations and so on. > > > > So my point is: Is this the intention of these changes or is it a > > fortunate side effect? Does the changes in ClassDef in anyway cause > > compatiblity problems? If so, I think ROOT should bump to version 4. > > > > Yours, > > > > ____ | Christian Holm Christensen > > |_| | ------------------------------------------------------------- > > | | Address: Sankt Hansgade 23, 1. th. Phone: (+45) 35 35 96 91 > > _| DK-2200 Copenhagen N Cell: (+45) 24 61 85 91 > > _| Denmark Office: (+45) 353 25 305 > > ____| Email: cholm@nbi.dk Web: www.nbi.dk/~cholm > > | | >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:53 MET