See also post on 3-stepper “new” and double-checked locking.
* always — new-expression always includes a constructor call, even for placement new expressions 
* never — explicit op-new function call never calls constructor 
* new-expression calls op-new (to grab raw memory), and then ctor (to initialize raw memory), then returns a pointer of the requested type, in one thread
* placement new-expression calls placement op-new, then ctor
* placement op-new doesn’t grab raw memory
— http://www.cplusplus.com/reference/std/new/operator%20new/ —
An expression with the new operator, first calls function “operator new” with the size of its type specifier as first argument, it then automatically constructs the object.
Note  some of the steps above could be skipped — Placement version of operator-new (we didn’t say “placement version of new“) does not allocate memory – it simply returns the given ptr. Notice though that the constructor for the object (if any) will still be called by the operator expression i.e. the new-expression .
Note  operator-new function call PRECEDES (not includes) constructor call. If you call operator-new explicitly, no constructor called!
myclass * p3 = (myclass*) operator new (sizeof(myclass));Note  op-new can include a 2nd argument --
// (!) not the same as: myclass * p3 = new myclass;
// (constructor not called by explicit operator-new call)
new (p3) myclass; // placement-new-expression, calls constructor // placement-op-new. no constructor call
// similar to --
operator new (sizeof(myclass),p3)
— http://www.cplusplus.com/reference/std/new/operator%20new%5B%5D/ shows simple examples of operator-new including the placement version
operator new can be called explicitly as a regular function, but in C++, new is an operator with a very specific behavior: An expression with new and an array type specifier is an operator new expression. This first calls function operator new with the size of its array type specifier as first argument (plus any array overhead storage to keep track of the size, if any), and if this is successful, it then automatically initializes or constructs each of the objects in the array (if needed). The expression evaluates as a pointer to the appropriate type pointing to the first element of the array.
— jargon warning
“the new operator will call the function operator new()”. it means
The new expression will call the function operator new()