Re: Recent changes in rootcint.cxx

From: Constantin Loizides <loizides_at_mit.edu>
Date: Wed, 31 Jan 2007 18:53:31 -0500


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
>

-- 
Tel: +1-617-8301823 (SkypeIn)
Skype: loizides
AOL: ConLoi / ICQ: 114824520

Received on Thu Feb 01 2007 - 00:54:55 CET

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