Re: [ROOT] rootcint and ostringstream

From: Masaharu Goto (gotom@hanno.jp)
Date: Sat Oct 16 2004 - 02:13:23 MEST


Hello Ale and Philippe,

I think this is for compiler and not rootcint. So, __GNUC__ and
__GNUC_MINOR__ are the ones you need to use.

Thank you
Masa Goto


On 2004/10/15, at 23:15, Philippe Canal wrote:

> Hi,
>
> You can use G__GNUC and G__GNUC_MINOR
>
> Cheers,
> Philippe
>
> -----Original Message-----
> From: Alessandro Thea [mailto:Alessandro.Thea@ge.infn.it]
> Sent: Friday, October 15, 2004 3:17 AM
> To: Philippe Canal
> Cc: 'Alessandro Thea'; 'roottalk'; 'Masaharu Goto'
> Subject: Re: [ROOT] rootcint and ostringstream
>
> 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