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

Posted

技术标签:

【中文标题】如何为联合成员提供一个简单的类构造函数?【英文标题】: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; ;
    ;
;

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于如何为联合成员提供一个简单的类构造函数?的主要内容,如果未能解决你的问题,请参考以下文章

如何为构造函数包含 HttpClient 和一些字符串的类设置一些 .NET Core 依赖注入?

如何为父类构造函数提供值,其中父构造函数的参数比c#中静态void main的子类多? [关闭]

如何为父类构造函数提供值,其中父构造函数的参数多于c#中static static main的子类; [关闭]

在构造函数代码之前禁用默认类成员初始化

没有默认构造函数可用于指定的类,结构或联合[重复]

如何为朋友函数中定义的类授予友谊?