Topic: Purported ambiguity of operator==(unsigned short, int)
Author: 3130@mail.com
Date: 10 May 2006 15:40:01 GMT Raw View
Which section of the standard should I refer to to resolve the
following ambiguity?
For the code fragment below, I get conflicting results on different
compilers I have
access to. One compiler doesn't complain and the other does.
Compilation requires that the compiler determine that application of
the available
conversion operator is sufficient to allow a built-in operator==(int,
int) to be applied.
class C
{
public:
C(unsigned short);
friend bool operator==(unsigned short, const C&);
};
class X
{
public:
operator unsigned short() const;
};
bool fail1(const X& x)
{
return x == 0x1234;
}
bool fail2(const X& x)
{
return x == (unsigned short) 0x1234;
}
---
[ comp.std.c++ is moderated. To submit articles, try just posting with ]
[ your news-reader. If that fails, use mailto:std-c++@ncar.ucar.edu ]
[ --- Please see the FAQ before posting. --- ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html ]