xem xét như sau:Tôi có thể đúc một mảng POD có phao nổi không?
#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]));
}
là raw
đảm bảo có 200 nổi tiếp giáp với các giá trị có đúng không? Đó là, tiêu chuẩn có đảm bảo điều này không?
CHỈNH SỬA: Nếu điều kiện trên được đảm bảo và nếu Vec2
có một số chức năng (không phải ảo) và người xây dựng, thì việc đảm bảo vẫn còn đó?
LƯU Ý: Tôi nhận ra điều này rất nguy hiểm, trong trường hợp đặc biệt của tôi, tôi không có sự lựa chọn như tôi đang làm việc với một thư viện của bên thứ 3.
Một câu hỏi tốt đẹp cho ngôn ngữ luật sư :) – Vlad
Nếu công trình này, sẽ không 'nổi * thô = & (myArray [0] .m_x) 'làm tương tự mà không cần đúc? – Axel