http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46139
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> 2010-10-22 20:54:43 UTC --- The standard is *very* clear about the operations used by binary_search and both a<b and b<a must be valid see also http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-closed.html#631 which was declared Not A Defect