基本上我有一个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;
};
我也尝试使用带数组的联合,但它仍然给我同样的错误。
答案 0 :(得分:3)
为了能够使用聚合初始化,您需要删除用户定义的ctor并确保所有成员都是公共的:
struct MyClass
{
__m128 SIMD;
};
请阅读aggregate initialization,其中说明了聚合的内容以及初始化的工作原理。