Can you change for the time being the header of this class to be: #ifndef __CINT__ class SubClass; #endif in the meanwhile a fix should be available shortly. Cheers, Fons. Rutger van der Eijk wrote: > > Hi, > > Consider the following lines of code: > > ---------------- > class SubClass; > > class TopClass { > public: > TopClass() { } > ~TopClass() { } > > class SubClass { > public: > inline SubClass(); > ~SubClass() { } > }; > > inline SubClass getSubClass(); > }; > > inline TopClass::SubClass:: > SubClass() > { > } > > inline TopClass::SubClass TopClass::getSubClass() { > return SubClass(); > } > ----------------- > > Running rootcint on this produces the output: > > Error: class,struct,union or type TopClass::SubClass not defined > FILE:./include/TopClass.H LINE:30 > Error: class,struct,union or type TopClass::SubClassTopClass not defined > FILE:./include/TopClass.H LINE:36 > Warning: Error occured during reading source files > Note: operator new() masked 1c > Note: operator delete() masked 1c > Warning: Error occured during dictionary source generation > Error loading headers... > gmake: *** [../dict/dictRootTest.C] Error 1 > > i.e. rootcint has problems parsing this and terminates. If you now remove > the forward declaration > > class SubClass; > > in the beginning it runs without problems. This looks to me like some > parsing error of (root)CINT... > > Ofcourse in the above example the forward declaration isn't necesarry but > in the real code (this is only a stripdown of that code to catch essence > of problem) that gives me this problem it is. > > I'm not able to change the 'real code' to not give this problem because > it's not my code (it occurs in HepGenMatrix of CLHEP). I don't think it's > wrong C++ anyway so I think changes should be made on parser. > > This problem results in a failure to generate shared libs for me only now > I'm moving to roor v2.23. With root v2.22 I also got these error messages > but rootcint didn't stop and I assumed I could ignore them (with seemed to > work uit fine). However with v2.23 rootcint stops which so I can not make > this 'dirty' assumption anymore => i.e. I can't work with v2.23! A > quick bug fix or (if not possible) a workaround for me would be very > usefull as I seem not to be able to move to v2.23 like this... > > Thanks, > > Rutger -- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7677910
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:41 MET