4

独自のアロケータを定義することにより、整列されたヒープメモリを割り当てるstd::vectorを割り当てることができます。declspec alignを使用して、スタックにcスタイルの配列を割り当てることができます。しかし、インデックス0の要素が整列されることを保証するtr1 :: arrayを宣言できますか?

4

1 に答える 1

7

tr1::array(およびstd::arrayおよびboost::array) は POD であるため、コンテンツが占有するメモリは のメモリと一致しますarray。したがって、必要に応じて割り当て、arrayplacement で構築しますnew

typedef std::tr1::array< MyClass, ary_sz > AryT;
void *array_storage = aligned_allocation( sizeof( AryT ) );
AryT *ary = new( array_storage ) AryT( initial_value );
于 2010-08-25T10:27:41.133 に答える