std :: allocator是否在C++ 17中处理过度对齐的类型?

Jam*_*ree 5 c++ memory-alignment allocator c++17

C++ 17引入了std::aligned_alloc对齐感知new,它可以进行过度对齐的分配,但是呢std::allocator?它是否处理过度对齐的类型?

Jam*_*ree 6

在N4659(C++ 17 DIS)中,23.10.9.1 [allocator.members],bullet 2

T*allocate(size_t n);

返回:指向大小为n*sizeof(T)的存储数组的初始元素的指针,适用于类型为T的对象.

与C++ 14相比,这句话

实现定义是否支持过度对齐类型

已被删除.所以std::allocator应该支持C++ 17中的过度对齐类型.