: new T results in one of the following calls:
operator new(sizeof(T))
operator new(sizeof(T), std::align_val_t(alignof(T)))
new(2,f) T results in one of the following calls:
operator new(sizeof(T), 2, f)
operator new(sizeof(T), std::align_val_t(alignof(T)), 2, f)
new T[5] results in one of the following calls:
operator new[](sizeof(T) * 5 + x)
operator new[](sizeof(T) * 5 + x, std::align_val_t(alignof(T)))
new(2,f) T[5] results in one of the following calls:
operator new[](sizeof(T) * 5 + x, 2, f)
operator new[](sizeof(T) * 5 + x, std::align_val_t(alignof(T)), 2, f)
Here, each instance of
x is a non-negative unspecified value
representing array allocation overhead; the result of the
new-expression will be offset by this amount from the value
returned by
operator new[].
This overhead may be applied in all
array
new-expressions, including those referencing
a placement allocation function, except when referencing
the library function
operator new[](std::size_t, void*). The amount of overhead may vary from one
invocation of
new to another
. —
end example