From: Arno on 31 Jan 2010 15:40 Hello, compiling this snippet: enum E { e1 }; bool operator<=( E, E ) { return false; } int main() { E e; e<=e; return 0; } produces 1>c:\users\schoedl\documents\visual studio 2008\projects \test6\test6\test6.cpp(17) : error C2593: 'operator <=' is ambiguous 1> c:\users\schoedl\documents\visual studio 2008\projects \test6\test6\test6.cpp(10): could be 'bool operator <=(E,E)' 1> or 'built-in C++ operator<=(E, E)' 1> while trying to match the argument list '(E, E)' comp.lang.c++.moderated seems to think it is a compiler bug. Is it? Arno
From: Leigh Johnston on 31 Jan 2010 15:55 "Arno" <aschoedl(a)think-cell.com> wrote in message news:53743777-8139-4868-90f2-1508d33d32ba(a)k19g2000yqc.googlegroups.com... > Hello, > > compiling this snippet: > > enum E { > e1 > }; > > bool operator<=( E, E ) { > return false; > } > > int main() > { > E e; > e<=e; > > return 0; > } > > produces > > 1>c:\users\schoedl\documents\visual studio 2008\projects > \test6\test6\test6.cpp(17) : error C2593: 'operator <=' is ambiguous > 1> c:\users\schoedl\documents\visual studio 2008\projects > \test6\test6\test6.cpp(10): could be 'bool operator <=(E,E)' > 1> or 'built-in C++ operator<=(E, E)' > 1> while trying to match the argument list '(E, E)' > > comp.lang.c++.moderated seems to think it is a compiler bug. Is it? > Looks like a bug to me, you should raise a defect on Microsoft Connect http://connect.microsoft.com/ /Leigh
From: Igor Tandetnik on 31 Jan 2010 16:15 Arno wrote: > compiling this snippet: > > enum E { > e1 > }; > > bool operator<=( E, E ) { > return false; > } > > int main() > { > E e; > e<=e; > > return 0; > } > > produces > > 1>c:\users\schoedl\documents\visual studio 2008\projects > \test6\test6\test6.cpp(17) : error C2593: 'operator <=' is ambiguous > 1> c:\users\schoedl\documents\visual studio 2008\projects > \test6\test6\test6.cpp(10): could be 'bool operator <=(E,E)' > 1> or 'built-in C++ operator<=(E, E)' > 1> while trying to match the argument list '(E, E)' > > comp.lang.c++.moderated seems to think it is a compiler bug. Is it? Looks like a bug to me, too. From C++ standard 13.3.1.2p3: For a ... binary operator @ with a left operand of a type whose cv-unqualified version is T1 and a right operand of a type whose cv-unqualified version is T2, three sets of candidate functions, designated member candidates, non-member candidates and built-in candidates, are constructed as follows: .... - The set of non-member candidates is the result of the unqualified lookup of operator@ in the context of the expression according to the usual rules for name lookup in unqualified function calls (3.4.2) except that all member functions are ignored... - ... the built-in candidates include all of the candidate operator functions defined in 13.6 that, compared to the given operator, ... - do not have the same parameter-type-list as any non-template non-member candidate. The last clause should have removed built-in operator<= from consideration in your example. -- With best wishes, Igor Tandetnik With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea. It is hard to be sure where they are going to land, and it could be dangerous sitting under them as they fly overhead. -- RFC 1925
From: Arno on 8 Feb 2010 03:01 The bug has been confirmed but set to Resolved - Won't fix. They say they may look at it again in the future, but they also say that I am the only one who reported it, so I don't have much hope. http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=529700 Arno
From: Bo Persson on 8 Feb 2010 12:54 Arno wrote: > The bug has been confirmed but set to Resolved - Won't fix. They say > they may look at it again in the future, but they also say that I am > the only one who reported it, so I don't have much hope. > > http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=529700 > > Arno Considering that Visual Studio 2010 is at Beta 2 stage, with the first Release Candidate appearing any day now, http://blogs.msdn.com/bharry/archive/2009/12/17/vs-2010-net-4-public-release-candidate-planned.aspx you will have to report some really, REALLY, mega-terrible bugs to have them fixed immediately. :-) Bo Persson
|
Pages: 1 Prev: Can I have the compiler ignore export keyword ? Next: Convert from UINT_PTR to LPVOID |