ISO/IEC 14882:2020
22.2.1.16 Note 8: The default construct in allocator will call::new ((void*)p) T(args)
, but specialized allocators can choose a different definition.
Would you be so kind as to tell me whether there's any reason it's not ::new (static_cast<void*>(p)) T(args)
?