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