This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c++/10380: warning about "choosing ... over ..." when there is no choice
- From: stip at mathematik dot uni-ulm dot de
- To: gcc-gnats at gcc dot gnu dot org
- Cc: lehn at mathematik dot uni-ulm dot de
- Date: 11 Apr 2003 19:13:55 -0000
- Subject: c++/10380: warning about "choosing ... over ..." when there is no choice
- Reply-to: stip at mathematik dot uni-ulm dot de
>Number: 10380
>Category: c++
>Synopsis: warning about "choosing ... over ..." when there is no choice
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Apr 11 19:16:01 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: stip at mathematik dot uni-ulm dot de
>Release: unknown-1.0
>Organization:
>Environment:
gcc 3.2 on Solaris 2.9
>Description:
gcc produces warning about chosing one conversion operator over another in the following example where there is only one correct choice:
struct A
{
};
struct B : public A
{
};
class C {
public:
operator A() const { return A(); }
operator B() { return B(); }
};
int
main()
{
C c;
A a;
B b;
a = c;
b = c;
return 0;
}
According to the standard IMO there is no reason to complain but the second conversion operator B() has
to be chosen in both assignments. There is no way to (correctly) apply the first conversion operator, so why
warning about the possibility?
There is no switch to turn exactly this warning off what makes it even worse.
>How-To-Repeat:
g++
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: