Hello Denis, Thank you for reporting this problem. I'll fix the problem 1) in cint5.15.37. For 2), we need to discuss how exit() should behave in ROOT. Masaharu Goto >Date: Tue, 30 Apr 2002 23:37:51 +0200 (METDST) >From: Rene Brun <Rene.Brun@cern.ch> >To: cint@pcroot.cern.ch >Subject: [CINT] [ROOT] Problems with CINT (fwd) > > > >---------- Forwarded message ---------- >Date: Tue, 30 Apr 2002 20:08:57 +0200 (CEST) >From: Denis Bertini <dbertini@lxg0402.gsi.de> >To: roottalk@cern.ch >Subject: [ROOT] Problems with CINT > > > Hi Rooters, > > > 1) > > I am facing a problem to access the pointers in my > event structure via CINT. I think it link to the way > CINT interprets level of indirection. > Let me explain briefly: > I have th following class "Composite" > > class Composite: public Element > { > protected: > TObjArray *fEventElements; > // something ... > > // specific [] operator > Element& operator[](Int_t i) { > return *static_cast<TGo4EventElement*>((*fEventElements)[i]); > //something > }; > > Now with this overloaded [] operator i want to access my pointers, > using macros commands like: > { > Composite * event = new Composite(); > // .. initialize my structure composite > // access one element > Element* sub_event= &(*event)[i][j][k]; > } > > I tested this access with pure compiled C++ code and it works fine. > But, CINT can only access (using this syntax) one level of indirection. > I need to do explicitely the following trick: > > { > Composite * event = new Composite(); > // .. initialize my structure composite > // access one element > Element* sub_event= &(((*event)[i]) > .operator[](j)) > .operator[](k); > } > ... in order to get the correct result. But it is not very nice ! > > So what am i doing wrong there? > > 2) In the last version of CINT (ROOT 303.04 22 April 2002) the > command exit(0) hangs for ever. In root 303.02 it was working > correclty. > > any hints ? > thanks > Denis >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:52 MET