RE: [ROOT] STL map pair problem.

From: Philippe Canal (pcanal@fnal.gov)
Date: Tue Nov 18 2003 - 00:07:38 MET


Hi,

To use the I/O of any templated class (beside the STL containers) with
ACLiC,
you have to add to your header file

#ifdef __MAKECINT__
#pragma link C++ class pair<int,int>+;
#endif

or the equivalent for your class.

Cheers,
Philippe.

-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Rene Brun
Sent: Monday, November 17, 2003 2:17 AM
To: Dongwook Jang
Cc: roottalk@cern.ch
Subject: Re: [ROOT] STL map pair problem.


Hi,

It looks like ACLIC is not able to generate the definition for the
dictionary of
the class pair<int,int>. Instead of ACLIC, do, eg:

rootcint -f mapcint.cxx -c RtgObject.hh maplinkdef.h
g++ -g -fPIC -I$ROOTSYS/include -c mapcint.cxx RtgObject.cc
g++ -g -o A RtgObject.o mapcint.o `root-config --libs` -lPhysics

with maplinkdef.h:
#ifdef __CINT__

#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;

#pragma link C++ class RtgEvent+;
#pragma link C++ class RtgMet+;
#pragma link C++ class RtgTrack+;
#pragma link C++ class RtgTower+;
#pragma link C++ class RtgPhoton+;
#pragma link C++ class RtgElectron+;
#pragma link C++ class RtgMuon+;
#pragma link C++ class RtgTau+;
#pragma link C++ class RtgPi0+;
#pragma link C++ class RtgCesMatch+;
#pragma link C++ class RtgJet+;
#pragma link C++ class RtgBoson+;
#pragma link C++ class pair<int,int>;

#endif


Rene Brun


Dongwook Jang wrote:
>
> Hi,
>
> I've attached files.
> The problem is to stream out the type of map<pair<int, int>,SomeObject>.
> I did the following in root session :
>
> .L RtgObject.cc+
> TestRtgObject();
>
> then got segmentaion fault.
> The files I attached contains class definition and making a simple tree
> and read that tree.
>
> Could you look into this?
> I'm using root 3.10.01 with gcc 3.2.2 on redhat linux 9.0.
>
> Thank you.
> Dongwook Jang.
>
>   ------------------------------------------------------------------------
--------
>                    Name: RtgObject.hh
>    RtgObject.hh    Type: Plain Text (text/plain)
>                Encoding: 7bit
>
>                    Name: RtgObject.cc
>    RtgObject.cc    Type: Plain Text (text/plain)
>                Encoding: 7bit


#################################################################
#################################################################
#################################################################
#####
#####
#####
#################################################################
#################################################################
#################################################################



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:16 MET