jjc@jclark.UUCP (James Clark) (05/30/89)
I was wondering whether the C++ rules for overloaded function names
could not be a little smarter. For example, the following won't
compile (with cfront 1.2 or g++):
struct SubString {
};
struct String {
String(SubString &);
operator char *();
};
String operator+(String &, String &);
String operator+(String &, const char *);
String foo(SubString &s, String &t)
{
return s + t;
}
The choice here is between:
- converting s to a String and doing nothing to t; and
- converting s to a String and converting t to a char *.
It would be nice if C++ was able to do the right thing, and choose the
first. Is there some good reason why it doesn't?
James Clark
jjc@jclark.uucp