如何使 tr1::array 分配对齐内存?
您可以分配一个 std::vector,它通过定义自己的分配器来分配对齐的堆内存。 您可以使用 declspecalign 在堆栈上分配 C 样式数组。 但是你能声明一个 tr1::array 来保证索引零处的元素对齐吗?
You can allocate a std::vector which allocates aligned heap memory by defining your own allocator.
You can allocate a c-style array on the stack using declspec align.
But can you declare a tr1::array which guarantees that the element at index zero will be aligned?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
tr1::array
(以及std::array
和boost::array
)都是POD,所以内容占用的内存与数组的内存
。因此,请根据需要分配数组
,并使用放置new
来构造它。tr1::array
(andstd::array
andboost::array
) are POD, so the memory occupied by the contents is coincident with the memory of thearray
. So, allocate thearray
however you need to, and construct it with placementnew
.