RE:problem with recent CINT

From: Masaharu Goto (MXJ02154@nifty.ne.jp)
Date: Wed Feb 09 2000 - 22:29:38 MET


Dear Christoph,

Cint5.14.25 had severe problem regarding implicit type conversion.
This was a side effect of fix number 1240. I tried to support
implicit conversion + derived to base conversion and it created
side-effect. I hope cint5.14.28 or later should restore the old 
behavior.  Sorry for inconvenience. Please download the latest
version and see what happens.

Thank you
Masaharu Goto

>
>Dear Masaharu,
>
>I am trying to move to the most recent ROOT version but seem to be stuck
>in a CINT problem. In ROOT 2.22/10 (CINT 5.14.10, Jul 20 1999), the
>following thing worked:
>
>---------------------------------------------------------------------
>template <class C, class T>
>class ClProperty
>{
>public:
>  ...
> ClExpression<C,T,int> operator&( const ClProperty<C,T>& rhs ) const;
>
>protected:
> operator=(...
>}
>----------------------------------------------------------------------
>
>ClProperty is an interface class, which must not be constructed. The old
>ROOT version traces this:
>
>----------------------------------------------------------------------
>root [6] pt>.5 & hsi>1
>{pt>.5 & hsi>1;
>!!!Trying implicit conversion 
ClProperty<RecoTrack,int>((ClExpression<RecoTrack,int,int>)142615712),0
>!!!Implicit conversion from ClExpression<RecoTrack,int,int> to base 
ClProperty<RecoTrack,int>
>!!!Destroy temp object (ClExpression<RecoTrack,int,int>)0x8802618 
createlevel=0 destroylevel=0
>[...]
>----------------------------------------------------------------------
>
>pt and hsi are derived from ClProperty and the result of the > operators
>are ClExpressions (derived, too, from ClProperty). CINT has to be aware,
>that it can implicitely cast the ClExpression to its base class
>ClProperty. The later version (5.14.25, Nov 25 1999) does not do that any
>more:
>
>----------------------------------------------------------------------
>root [4] (pt>.5) & (hsi>1)
>{(pt>.5) & (hsi>1);
>!!!Trying implicit conversion 
ClProperty<RecoTrack,int>((ClExpression<RecoTrack,int,int>)143382168),0
>Error: ClProperty<RecoTrack,int>::ClProperty<RecoTrack,int> is private or 
protected FILE:/tmp/filemDnDyY_cint LINE:1
>!!!Create temp object
>(ClProperty<RecoTrack,int>((ClExpression<RecoTrack,int,int>)143382168))(-1073
8
01304),0
>for implicit conversion
>
> *** Break *** segmentation violation
>-----------------------------------------------------------------------
>
>Since ClProperty cannot be created, this code fails. Has there been a
>change in CINT, which does not recognize base classes any more?
>
>Thank you for looking into this
>Christoph
>
>
>
>-- 
> Christoph Borgmeier    Mail:  DESY F15/HERA-B, Geb. 61/117
>                               Notkestr. 85, 22607 Hamburg
> DESY HERA-B            Phone: +49 40 8998 4850
>                        Email: Christoph.Borgmeier@desy.de
>



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:18 MET