RE: [ROOT] problem with overloaded methods in ACLIC

From: Ruben Shahoian (Ruben.Shahoyan@cern.ch)
Date: Tue Jul 23 2002 - 21:25:28 MEST


Hi,
sorry, I misunderstood the message of Jacek. "using" worked!

Best regards,
	Ruben


On Tue, 23 Jul 2002, Philippe Canal wrote:

> Hi Ruben,
> 
> The differences in the warning messages is probably only due to the
> different flags being used (for example with or without -Wall).
> 
> Jacek is correct.  The C++ standard does mandate for ALL signatures of a
> method to be overloaded at the same time.  It also provides with a shortcut
> (but not all compiler implements this shortcut).  You can use the syntax:
> 
> 	using NaElem::CreatGeometry;
> 
> For more details see paragraphe 7.3.3 of the C++ standard.
> 
> Cheers,
> Philippe
> 
> 
> -----Original Message-----
> From: owner-roottalk@pcroot.cern.ch
> [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Ruben Shahoian
> Sent: Tuesday, July 23, 2002 12:34 PM
> To: Jacek M. Holeczek
> Cc: roottalk@cern.ch
> Subject: Re: [ROOT] problem with overloaded methods in ACLIC
> 
> 
> Hi Jacek,
> thanks, but I think I implemented all overloaded methods: in the example
> I gave, base class (NaElem) has 2 (virtual) methods
> CreateGeometry(NaElem*) and CreateGeometry(void), they are both
> implemented.
> The deriving class (NaDetector) implements its own version of
> CreateGeometry(void) and inherits from its base class
> CreateGeometry(NaElem*). So, I think, there is no C++ standards violation.
> Also, the g++ does complain at all, it is only ACLIC which produces these
> warnings.
> 
> Best regrads,
> 	Ruben
> 
> On Tue, 23 Jul 2002, Jacek M. Holeczek wrote:
> 
> > Hi,
> > I think that what you see originates in the following problem.
> > If you overloaded a method with a particular "name" and particular
> > "signature" (I mean set of parameters), you have to write the code for ALL
> > possible "signatures" of this method (if I remember well, this is written
> > in the C++ standard - maybe Philippe could comment more on this).
> > In your example that means that you overload "CreateGeometry(some set of
> > parameters)", but you did not overload "CreateGeometry (NaElem *)" and
> > "CreateGeometry ()". And that is why you get the warning from the
> > compiler.
> > Best regards,
> > Jacek.
> >
> >
> 
> 
> 



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:00 MET