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