Re: Recent changes in rootcint.cxx

From: Fons Rademakers <Fons.Rademakers_at_cern.ch>
Date: Thu, 01 Feb 2007 09:57:43 +0100


Hi Philippe,

   the same problem is observed by ALICE where AliRoot also does not compile anymore due to the same kind of errors.

Cheers, Fons.

Constantin Loizides wrote:

> Hi Phillippe,
> 
> I made an example for you based on a stripped down version of
> the class I reported the problem with and using the $ROOTSYS/test
> environment.
> 
> Constantin
> 
> Philippe Canal wrote:

>> Hi Constantin,
>>
>> Can you please send a succint example reproducing the problem?
>>
>> Thanks,
>> Philippe.
>>
>> -----Original Message-----
>> From: owner-roottalk_at_pcroot.cern.ch
>> [mailto:owner-roottalk_at_pcroot.cern.ch]
>> On Behalf Of Constantin Loizides
>> Sent: Wednesday, January 31, 2007 12:36 PM
>> To: ROOT TALK
>> Subject: [ROOT] Recent changes in rootcint.cxx
>>
>> HI,
>>
>> recently none of my projects compiles anymore with ROOT head, nothing was
>> changed
>> than updating ROOT to the latest cvs (as of now).
>>
>> The compilation fails in the rootcint generated code segments, like in
>>
>> >g++ -g -I. --ansi -Wall -Wno-long-long -Wno-strict-aliasing
>> -Df2cFortran
>> -D_GNU_SOURCE -Iinclude >-I/opt/root/root_head/include
>> -DHAVE_CERNLIBS -o
>> genherwig/bld/G__genherwig.o -c genherwig/G__genherwig.cxx
>> >./genherwig/THIHerwigBase.h:27: error: 'template<class T> struct
>> THIHerwigBase::IE_t' is protected
>> >genherwig/G__genherwig.h:55: error: within this context
>>
>> where
>>
>> class THIHerwigBase : public THIGenerator {
>> protected:
>>
>> template<typename T = Int_t>
>> struct IE_t { /*IndexElement*/
>> public:
>> UInt_t fIndex; //index in common block
>> T fVal; //corresponding value
>> IE_t(UInt_t i=0, T v=0) : fIndex(i),fVal(v) {}
>> virtual ~IE_t() {}
>> ClassDefT(IE_t,1) // Generic parameter given by an index (in
>> common
>> block)
>> };
>> // and so on
>> }
>>
>> After a bit of research I figured out that in
>> http://root.cern.ch/viewcvs/utils/src/rootcint.cxx.diff?r1=1.251&r2=1.252&so
>>
>> rtby=date
>> a change was performed to not brutally overwrite protect and private with
>> public,
>> but rather to keep the access pattern assigned by the programmer. This of
>> course
>> is great, but seems not work:
>>
>> The login message says:
>> "Remove the #define private public since it is no longer used (we
>> really on the Shadow classes to replace this technique)."
>>
>> What are those Shadow classes? Am I supposed to write some code
>> to support the new feature?
>>
>> Please let me know asap, since lots of code fails to compile and I need
>> to understand the change in HEAD before I can adapt our projects.
>>
>> Thanks,
>> Constantin
>>

>
>
-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers_at_cern.ch              Phone: +41 22 7679248
WWW:    http://fons.rademakers.org           Fax:   +41 22 7669640
Received on Thu Feb 01 2007 - 09:57:44 CET

This archive was generated by hypermail 2.2.0 : Thu Feb 01 2007 - 11:50:02 CET