blob: bfe513b46db82f0b867d628cd19e0f49c353d763 [file] [log] [blame]
// Ambiguous conversion, three candidates:
// builtin == (int, int), and the two user-defined operators
// Each one requires a user-defined ICS where another uses builtin conversions,
// so none is the best viable function.
class MyInt
{
public:
MyInt(int = 0) {}
operator int() const {return 2;}
};
bool operator==(const MyInt& a, const int& b)
{ // ERROR - candidate
return (int)a == b;
}
bool operator==(const MyInt& a, const MyInt& b)
{ // ERROR - candidate
return (int)a == (int)b;
}
bool f()
{
return 3 == MyInt(); // ERROR - ambiguous
} // ERROR - no return value