【问题标题】:How to provide a trivial class constructors for members of a union?如何为联合成员提供一个简单的类构造函数?
【发布时间】:2011-07-14 00:33:57
【问题描述】:

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

我读过任何具有普通构造函数的类都可以成为联合的一部分。特别是对于 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; };
    };
};

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 2015-10-02
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 2018-05-13
      相关资源
      最近更新 更多