1

基本上我有一个围绕 SIMD 结构的包装器,如下所示:

class MyClass
{
public:
   MyClass();

   __m128 SIMD;
};

我在 Microsoft 的 DirectXMath SIMD 数学库中看到他们可以执行以下操作:

const XMVECTOR SinCoefficients0    = {-0.16666667f, +0.0083333310f, -0.00019840874f, +2.7525562e-06f};

XMVECTOR只是围绕着这样的东西

union
{
  float f[4];
  __m128 entry;
};

我也尝试使用带有数组的联合,但它仍然给我同样的错误。

4

1 回答 1

3

为了能够使用聚合初始化,您需要删除用户定义的 ctor 并确保所有成员都是公共的:

struct MyClass
{
   __m128 SIMD;
};

请阅读聚合初始化,它解释了聚合是什么以及初始化是如何工作的。

于 2013-06-29T22:01:46.287 回答