Article View: gnu.g++.bug
Article #1601G++ allows ambiguous overloading:
From: "Douglas C. Schmidt"
Date: Fri, 13 Jan 1989 03:34
Date: Fri, 13 Jan 1989 03:34
49 lines
1375 bytes
1375 bytes
Hi,
The following short C++ program contains an erroneous conversion,
according to cfront 1.2.1. It was taken from the article ``Building
Well-Behaved Type Relationships in C++'' by R.B. Murray.
----------------------------------------
class Orange {
public:
char *c;
operator int () {
return (int (c));
}
};
class Apple {
public:
int i;
Apple() {
}
Apple(Orange F) {
i = F;
}
};
overload cross;
void cross (Orange, Apple);
void cross (Apple, Apple);
main ( ) {
Orange Navel;
Apple Mac;
cross(Navel,Navel); // error: two possible conversions.
}
----------------------------------------
Here's the CC diagnostic:
----------------------------------------
CC test.c:
"test.c", line 27: error: ambiguous argument for overloaded cross()
1 error
----------------------------------------
g++ 1.32 doesn't complain, but should.
Doug
Technical Details
Message-ID:
<8901121935.aa04521@PARIS.ICS.UCI.EDU>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!watmath!uunet!tut.cis.ohio-state.edu!PARIS.ICS.UCI.EDU!schmidt%crimee.ics.uci.eduShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watmath!uunet!tut.cis.ohio-state.edu!PARIS.ICS.UCI.EDU!schmidt%crimee.ics.uci.edu
From: schmidt%crimee.ics.uci.edu@PARIS.ICS.UCI.EDU ("Douglas C. Schmidt")
Newsgroups: gnu.g++.bug
Subject: G++ allows ambiguous overloading:
Message-ID: <8901121935.aa04521@PARIS.ICS.UCI.EDU>
Date: 13 Jan 89 03:34:52 GMT
Sender: daemon@tut.cis.ohio-state.edu
Distribution: gnu
Organization: GNUs Not Usenet
Lines: 49