Re: [ROOT] rootcint and ostringstream

From: Alessandro Thea (Alessandro.Thea@ge.infn.it)
Date: Fri Oct 15 2004 - 10:16:48 MEST


Hi,
after reading your mail I tried to add the following lines to the header 
of my class:

#ifndef __MAKECINT__
typedef ostringstream ostrstream;
typedef stringstreambase strstreambase;
#endif  /*__MAKECINT__*/

the #ifndef is needed to hide stringstreambase to rootcint because it 
seems not to know that class.
It works well with gcc 2.96 but it doesn't with 3.32...
Does exist a way to let the preprocessor know which is the current 
compiler version?
Any suggestion would be greatly appreciated...

Thanks,
Alessandro

Philippe Canal wrote:

>Hi,
>
>The iostream CINT implementation used for gcc 2.96 is indeed typedefing
>ostrstream to ostringstream.
>Fixing the problem would requires to regenerate this layer (and possibility
>having to modify some of the header file used in the process).
>
>Cheers,
>Philippe.
>
>-----Original Message-----
>From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch]
>On Behalf Of Alessandro Thea
>Sent: Thursday, October 14, 2004 12:22 PM
>To: roottalk
>Subject: [ROOT] rootcint and ostringstream
>
>Hi all,
>I have a problem with dictionary generated by rootcint and ostringstream.
>We have a class EsafMsg inheriting from ostringstream. It compiles well,
>both source and rootcint dictionary, on RedHat 9, gcc 3.32 but when I mov to
>RedHat 7.2 gcc 2.96 something strange happens.
>rootcint misinterpret ostringstream and put in the dictionary "ostrstream"
>instread of "ostringstream". g++ compiles EsafMsg, no errors, but when tries
>to compile the dictionary complains because "ostrstream" is not defined.
>The same error applies also to "stringstringbase" <--> "strstringbase"
>I have to add that the linux boxes I'm trying to compile EsafMsg on are in
>Lyon Computer Center and it's very likely that rootcint get fooled by some
>local setting.
>I've also checked the dictionary created on RH9 and there "ostringstream" is
>used correctly.
>My question is: there is a way to understand why or where rootcint decide to
>use ostrstream instead of  ostringstream?
>
>Thanks,
>Alessandro
>
>--
>__________________________________________________________________________
>
>  Alessandro Thea
>  Ph.D. Student
>  Dipartimento di Fisica dell'Universita' di Genova and
>  Istituto Nazionale di Fisica Nucleare, Sezione di Genova,
>  Via Dodecaneso 33, I-16146, Genova, Italia.
>  
>  Tel: +39 010 3536468               E-Mail: Alessandro.Thea@ge.infn.it 
>__________________________________________________________________________
>
>  
>


-- 
__________________________________________________________________________

  Alessandro Thea
  Ph.D. Student
  Dipartimento di Fisica dell'Universita' di Genova and
  Istituto Nazionale di Fisica Nucleare, Sezione di Genova,
  Via Dodecaneso 33, I-16146, Genova, Italia.
  
  Tel: +39 010 3536468               E-Mail: Alessandro.Thea@ge.infn.it 
__________________________________________________________________________



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET