[Bug libstdc++/40804] STL: operator>= for pair "hides" general operator>= from std::rel_ops

mariofutire at googlemail dot com gcc-bugzilla@gcc.gnu.org
Sun Jul 19 17:29:00 GMT 2009

------- Comment #3 from mariofutire at googlemail dot com  2009-07-19 17:29 -------
I have removed one of the "using" and still get the same problem:

#include <utility>
#include <functional>

using namespace std::rel_ops;

struct A
  bool operator<(const A &) const;

void foo1()
  bool ok = A() >= A(); // just to check rel_ops is actually included

void foo2()
  std::greater_equal<A> ge;
  bool bad = ge(A(), A());

An alternative way is to replace the "using namespace std::rel_ops;" with

using std::rel_ops::operator>=;

but this means I have to repeat it for every operator I need.

Is there an other way to make all operators defined in rel_ops available?


mariofutire at googlemail dot com changed:

           What    |Removed                     |Added
             Status|RESOLVED                    |UNCONFIRMED
         Resolution|INVALID                     |


More information about the Gcc-bugs mailing list