考虑以下:
#include <vector>
using namespace std;
struct Vec2
{
float m_x;
float m_y;
};
vector<Vec2> myArray;
int main()
{
myArray.resize(100);
for (int i = 0; i < 100; ++i)
{
myArray[i].m_x = (float)(i);
myArray[i].m_y = (float)(i);
}
float* raw;
raw = reinterpret_cast<float*>(&(myArray[0]));
}
raw
保证有 200 个具有正确值的连续浮点数吗?也就是说,标准是否保证这一点?
编辑:如果以上得到保证,并且如果Vec2
有一些功能(非虚拟)和构造函数,那么保证仍然存在吗?
注意:我意识到这很危险,在我的特殊情况下,我别无选择,因为我正在使用 3rd 方库。