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