わかりましたので、コードで 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 メンバーを持つ 2 番目のクラスを作成すると、問題が発生します。
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)
それで、私はこれについて間違った方法をとっていますか?代わりに構造体を使用する必要がありますか、それともクラスで動作させることができますか?