I guess the question was how to call an overloaded new explicitly, whereas all answers so far advised how to do it implicitly.
My solution (floats aligned to 256-byte boundaries):
auto q = new (std::align_val_t(256)) float;
auto p = new (std::align_val_t(256)) float[10];
Explanation
We go to https://en.cppreference.com/w/cpp/language/new ("new expression') and navigate to section "Placement new":
If placement_params are provided, they are passed to the allocation function as additional arguments
That's it!
Well, almost. Here: https://en.cppreference.com/w/cpp/memory/new/operator_new we read:
These allocation functions are called by new-expressions to allocate memory in which new object would then be initialized. They may also be called using regular function call syntax.
I was intrigued by the possibility of calling operator new using function call syntax. I don't think anyone does it like this. Let's try:
auto r = operator new (sizeof(float), std::align_val_t(256));
auto s = operator new[] (sizeof(float)*10, std::align_val_t(256)); // don't do it!!!
Ugly and dangerous, especially in the array-like version, as it does not have a place for the argument corresponding to the number of requested elements -- all it needs is the number of bytes to allocate, which may require taking into account some alignment overhead.