C++ conversion rules ???
Marc Espie
espie@quatramaran.ens.fr
Sat Jun 19 07:35:00 GMT 1999
I have trouble understanding why the following fragment:
struct A {
operator const char *() const { return "";}
operator char *() { return "";}
};
A a;
const char *b = a;
will yield
a.C:9: warning: choosing `A::operator char *()' over `A::operator const char *() const'
a.C:9: warning: for conversion from `A' to `const char *'
a.C:9: warning: because conversion sequence for the argument is better
even after reading the ANSI C++ drafts I have...
Note that, if I remove one const, e.g.,
operator const char *() { return "";}
the code no longer warns...
More information about the Gcc-bugs
mailing list