Re: Problem with rootcint when generating dictionary file for function returning Double_t const* const*

From: Philippe Canal <pcanal_at_fnal.gov>
Date: Thu, 6 Nov 2008 10:28:50 +0100


Hi Pierre-Luc,

CINT has (currently) a hard time to represent constness 'inside' a pointer chain.
To work around the problem use:

#ifdef __CINT__

   Double_t ** MyFunction() const;
#else

   Double_t const* const* MyFunction() const; #endif

Cheers,
Philippe.

Pierre-Luc Drouin wrote:
> Hi,
>
> I have a class for which a member function has the following signature
> (it returns a pointer to a constant pointer of a constant Double_t):
>
> Double_t const* const* MyFunction() const;
>
> When I try to generate a dictionary file for it, rootcint does not
> crash, but it generates the following buggy code:
>
> static int G__qsigex_Dict_472_0_13(G__value* result7, G__CONST char*
> funcname, struct G__param* libp, int hash)
> { G__letint(result7, 68, (long) ((const QProcessor*)
> G__getstructoffset())->*const*MyFunction()*);
> return(1 || funcname || hash || result7 || libp) ;
> }
>
> Is it a known bug in rootcint?
>
> Thanks!
> Pierre-Luc Drouin
>
Received on Thu Nov 06 2008 - 10:29:18 CET

This archive was generated by hypermail 2.2.0 : Thu Nov 06 2008 - 17:50:02 CET