您可以通过定义自己的分配器来分配一个 std::vector 来分配对齐的堆内存。您可以使用 declspec align 在堆栈上分配 c 样式的数组。但是你能声明一个 tr1::array 来保证索引为零的元素对齐吗?
问问题
1104 次
1 回答
7
tr1::array
(and std::array
and boost::array
) 是 POD,所以内容占用的内存与array
. 所以,分配array
你需要的,然后用 layout 构建它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 回答