This is the mail archive of the
mailing list for the GCC project.
Re: function overloading broken in egcs-980302 ?
- To: David C Binderman <dcb at pncl dot co dot uk>
- Subject: Re: function overloading broken in egcs-980302 ?
- From: Ian Haggard <ian at shellus dot com>
- Date: Tue, 03 Mar 1998 14:41:10 -0600
- Cc: egcs-bugs at cygnus dot com
- Organization: Shell
- References: <199803031835.SAA19633@eiger.pncl.co.uk>
David C Binderman wrote:
> Hello there,
> Given the following code on machine i486-pc-linux-gnulibc1, with
> compiler G++ in egcs-980302, I was surprised to find that it compiled ok.
> f( int i)
> f( int & ri)
> I even tried flags -O -Wall -ansi -pedantic, and the code still compiled !
This is not an error. If you want an error, add these lines to your test-case:
int main(int argc,char** argv)
f(argc); // ERROR! Ambiguous overload resolution..
f(1); // OK. Because 1 is a constant, it can't be passes as a non-const ref
With respect to function overloading, C++ takes the stance that a potential
ambiguity is not an error until you attempt to use it.
Ian Haggard || firstname.lastname@example.org (work) || IanHaggard@juno.com (home)
GNU/Linux -- "Oh, no, Mr Bill!" || #define employer_opinion !my_opinion