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é started 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