我希望我的向量存储是对齐的(比如说按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编译。