ベクトルのストレージを (たとえば 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 でコンパイルしています。