Hello Christian, Thank you for a good example that triggers the problem. I'll fix this in next release. Masaharu Goto >Date: Sat, 01 Sep 2001 09:56:31 +0200 >From: Christian Holm Christensen <cholm@hehi03.nbi.dk> >To: MXJ02154@nifty.ne.jp >Cc: cholm@hehi03.nbi.dk, bv@bnl.gov, roottalk@pcroot.cern.ch >Subject: RE:Re: [ROOT] rootcint + pair + nexted clas > >Hi Masa, > >On Thu, 30 Aug 2001 22:05:18 +0900 >Masaharu Goto <MXJ02154@nifty.ne.jp> wrote >concerning "RE:Re: [ROOT] rootcint + pair + nexted clas": >> Hello Christian, >> >> Sorry for delay in my reply, > >No worry, at least not on my part, as it's really Bretts problem. I just >explicitly wrote you since I thought it was a problem in CINT. > >> I tried your example and it compiled without problem >> with my RedHat6.2 Linux and ROOT/CINT 5.15.10. If you >> still have the problem, would you resend the information? > >Anyway, the problem persists. I'm using CINT 5.15.10 and ROOT 3.01/06 >(in fact, it's almost 3.02/00 - I updated my checkout 2 hours before >Ren$B""(Bstarted 3.02 :-), on a GNU/Linux box running Redhat 6.2. > >Ok, so I have (or Brett has) the header file: > > // -*- mode: c++ -*- > //--- begin classes.h ---// > #ifndef PAIRCLASS_H > #define PAIRCLASS_H > #include <TObject.h> > #include <list> > #include <map> > class SomeClass > { > public: > SomeClass(); > ~SomeClass(); > }; > > #ifdef FOO > typedef const SomeClass cSomeClass; > #endif > > class PairClass : public TObject > { > public: > PairClass(); > virtual ~PairClass(); > private: > #ifdef FOO > map<int, pair < const int , cSomeClass* > > fPairListMap; > list< pair < const int , cSomeClass* > > fPairList; > #else > map<int, pair < const int , const SomeClass* > > fPairListMap; > list< pair < const int , const SomeClass* > > fPairList; > #endif > }; > #endif // PAIRCLASS_H > //--- end classes.h ---// > >and a linkdef file: > > //-*-mode: c++ -*- > //--- begin linkdef.h ---// > #pragma link off all classes; > #pragma link off all functions; > #pragma link off all globals; > > #pragma link C++ class SomeClass; > #pragma link C++ class PairClass; > > #endif > //--- end linkdef.h ---// > >If I do > > rootcint -f dicts.cxx -c classes.h linkdef > >I get error messages like: > > Error: Symbol constSomeClass is not defined in current scope FILE:prec_stl/utility LINE:12 > Error: Symbol second is not defined in current scope FILE:prec_stl/utility LINE:12 > Warning: Unknown type 'constSomeClass' in function argument handled as int FILE:prec_stl/utility LINE:14 > >and it fails. However, if I do > > rootcint -f dicts.cxx -c -DFOO classes.h linkdef > >it succeeds. > >I think we probably got our wires crossed somewher, and you thought I >was talking about the case _with_ FOO defined. I think you'll see >this problem too. Ofcourse Brett and I may be doing something wrong >here, but I think not. > >Yours, > >Christian Holm Christensen ------------------------------------------- >Address: Sankt Hansgade 23, 1. th. Phone: (+45) 35 35 96 91 > DK-2200 Copenhagen N Cell: (+45) 28 82 16 23 > Denmark Office: (+45) 353 25 305 >Email: cholm@nbi.dk Web: www.nbi.dk/~cholm > >
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:59 MET