如何为联盟成员提供一个简单的类构造函数?

时间:2011-07-14 00:33:57

标签: c++ visual-studio-2010 constructor c++11

如何提供一个将构造函数作为联合的一部分的类?

我已经读过任何具有普通构造函数的类都可以成为联合的一部分。特别是对于c ++ 0x,我认为工会应该是不受限制的。为什么这个float4课程不合适?我怎么能这样做?

struct float4
{
    union
    {
        struct { float z, y, x, w; };
        float v[4];
        __m128 xmm;
    };

    inline float4() { }
    inline float4(float x, float y, float z, float w) :
        xmm(_mm_setr_ps(z, y, x, w)) { }
};

struct float44
{
    union
    {
        float v[16];
        __m128 xmm[4];
        struct { __m128 xmm1, xmm2, xmm3, xmm4; };
        struct { float4 row1, row2, row3, row4; };
    };
};

1 个答案:

答案 0 :(得分:0)

VC2010尚未实现C ++ 0x规范的那部分。