RE:Re: [ROOT] rootcint + pair + nexted c

From: Masaharu Goto (MXJ02154@nifty.ne.jp)
Date: Mon Sep 03 2001 - 16:36:56 MEST


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