> The decision to make something in std namespace depend on/use something in cv namespace is bad

Wouldn't the same be true for the global namespace?

It's actually illegal to declare _any_ overloads for `std::` functions (http://stackoverflow.com/questions/14402990/should-you-overload-swap-in-the-std-namespace), but removing this entirely would cause many calls to silently revert to the overloads for signed types, with disastrous results. So I went for the next best thing.