我希望我的向量的存储对齐(比如 16 字节边界),所以我有这个分配器作为包装器memalign()
,我想知道这是否是分配与 STL 向量一起使用的对齐内存的正确方法。
template <class T , int Alignment=16>
class AlignedAllocator
{
public:
...
pointer allocate (size_type size, const_pointer *hint = 0) {
return (pointer) memalign(Alignment, size*sizeof (T));
};
void deallocate (pointer p, size_type size) {
free(p);
};
...
}
如果没有,是否有适用于 STL 容器的对齐分配器的任何可用实现?
PS:我正在用 gcc 编译。