Just to clarify my last answer, here's section 5.3.4/9 of the standard:
If the new-expression begins with a unary :: operator, the allocation function’s name is looked up in the global scope. Otherwise, if the allocated type is a class type T or array thereof, the allocation function’s name is looked up in the scope of T. If this lookup fails to find the name, or if the allocated type is not a class type, the allocation function’s name is looked up in the global scope.
(Note that, by supplying an operator new in class scope, you are hiding the global one.)