當我用這個,我想這是肯定地說這些對象對齊:對齊,STL向量和Bullet物理對準分配器
std::vector<object_type> vect;
我看到子彈物理學一個allocator,我不知道如何他們工作。這也引發了關於std :: vector的問題。
在這裏的演示中,管線42,http://code.google.com/p/bullet/source/browse/trunk/Demos/BasicDemo/BasicDemo.h#42
btAlignedObjectArray<btCollisionShape*> m_collisionShapes;
的類型是一個指針,和後來這些指針被分配一個new
。它真的保證對齊嗎?如果分配器是用來處理指針的,我想是的,但我沒有任何分配器知識,除此之外,我不知道什麼是過時或不是。
std::vector
怎麼樣?如果我宣佈
std::vector<object_type*> vect;
,後來分配,將編譯器仍然對準我的對象?
問題非常相似,http://stackoverflow.com/questions/9053157/will-this-code-make-那些矢量對齊 – 2013-02-11 00:48:00
什麼對齊? 4字節對齊? 8字節對齊? 4KiB對齊?或者你濫用術語對齊? – delnan 2013-02-11 00:48:46
對齊用於緩存目的 – jokoon 2013-02-11 01:06:54