Citation:
If the new-expression creates an object or an array of objects of class type, access and ambiguity control are
done for the allocation function, the deallocation function (12.5), and the constructor (12.1). If the new
expression creates an array of objects of class type, access and ambiguity control are done for the destructor
(12.4).
et également :
Citation:
If the new-expression begins with a unary :: operator, the deallocation function’s name is looked up in the
global scope. Otherwise, if the allocated type is a class type T or an array thereof, the deallocation
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 or array thereof, the deallocation function’s name is looked up in the global scope.