好的,所以我刚刚开始在我的代码中使用 C 内在函数,并且我创建了一个类,它简化后如下所示:
class _Vector3D
{
public:
_Vector3D()
{
aVals[0] = _mm_setzero_ps();
aVals[1] = _mm_setzero_ps();
aVals[2] = _mm_setzero_ps();
}
~_Vector3D() {}
private:
__m128 aVals[3];
};
到目前为止,一切都很好。但是当我用 _Vector3D 成员创建第二个类时,我遇到了问题:
class RayPacket
{
public:
RayPacket() {orig = _Vector3D(); dir = _Vector3D(); power = _mm_setzero_ps();}
~RayPacket() {}
RayPacket(_Vector3D origins, _Vector3D directions, float pow)
{
orig = origins;
dir = directions;
power = _mm_set_ps1(pow);
}
_Vector3D orig;
_Vector3D dir;
__m128 power;
};
我收到以下错误:
错误 C2719: 'origins': 带有 __declspec(align('16')) 的形式参数不会对齐
指向构造函数重载:
RayPacket(_Vector3D origins, _Vector3D directions, float pow)
那么我会以错误的方式解决这个问题吗?我应该改用结构还是可以让它与类一起使用?