| delorie.com/archives/browse.cgi | search |
| Mailing-List: | contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm |
| List-Subscribe: | <mailto:cygwin-subscribe AT sourceware DOT cygnus DOT com> |
| List-Archive: | <http://sourceware.cygnus.com/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT sourceware DOT cygnus DOT com> |
| List-Help: | <mailto:cygwin-help AT sourceware DOT cygnus DOT com>, <http://sourceware.cygnus.com/ml/#faqs> |
| Sender: | cygwin-owner AT sourceware DOT cygnus DOT com |
| Delivered-To: | mailing list cygwin AT sourceware DOT cygnus DOT com |
| X-Authentication-Warning: | hp2.xraylith.wisc.edu: khan owned process doing -bs |
| Date: | Tue, 8 Feb 2000 10:03:47 -0600 (CST) |
| From: | Mumit Khan <khan AT NanoTech DOT Wisc DOT EDU> |
| To: | "K. Haley" <khaley AT bigfoot DOT com> |
| cc: | cygwin AT sourceware DOT cygnus DOT com |
| Subject: | Re: Overloaded constructor resolution |
| In-Reply-To: | <4.2.2.20000207195446.00a3c7d0@pop.mail.yahoo.com> |
| Message-ID: | <Pine.HPP.3.96.1000208095828.4570G-100000@hp2.xraylith.wisc.edu> |
| MIME-Version: | 1.0 |
On Mon, 7 Feb 2000, K. Haley wrote:
> I'm trying to compile some library code with GCC 2.95.2 but I keep getting
> an ambiguous constructor call. Here is the error:
>
> gauge.cpp: In method `void OWL::TGauge::SetBkgndColor(const OWL::TColor &)':
> gauge.cpp:217: call of overloaded `TColor(unsigned int)' is ambiguous
> ../../Include/owl/color.h:458: candidates are: OWL::TColor::TColor(const
> OWL::TColor &) <near match>
> ../../Include/owl/color.h:468: OWL::TColor::TColor(long
> unsigned int)
> ../../Include/owl/color.h:478: OWL::TColor::TColor(long int)
> ../../Include/owl/color.h:509: OWL::TColor::TColor(short int)
> make: *** [../../Obj/owlwfg/gauge.obj] Error 1
>
> I've fixed the offending code with a cast, but I'm wondering why other
> compilers don't complain. This code has been compiled with Borland and MS
> compilers.
From the message, your code is simply ambiguous and needs a cast. I don't
know why MS and Borland accept it, but KAI, GCC etc don't. Here's a
trivial testcase:
struct foo
{
foo (long unsigned int);
foo (long int);
foo (short int);
};
void
bar ()
{
foo foo1 (5); // <<< Hmmm ... which one?
}
You could always try out Comeau's online compiler (it's based on the EDG
front-end like KCC and one of the most standard conforming out there) at
http://www.comeaucomputing.com/tryitout/
If you feel it's a bug, please post a testcase to gcc-bugs AT gcc DOT gnu DOT org.
Regards,
mUmit
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |