How's that work? ::operator new() is saying "use the 'operator new' in global scope". Do classes have implicit operator new()s defined, and the implicit MyClass::operator new() then calls the class constructor? And the implicitly defined MyClass::operator delete() calls the class destructor?
I get that new() constructs the class, but what scope is 'new' in, if ::operator new() does not construct the class?
Short answer: There's a difference between the keyword new (called new operator) and operator new. Yeah, it's misleading .
If you're interested in details like these, I invite you to read more about that on my blog:
There's five parts in the series, and they detail how to write your own memory manager and allocators.