2011-07-14 10 views
0

共用体の一部としてコンストラクタを持つクラスを提供するにはどうすればよいですか?ユニオンのメンバーに簡単なクラスコンストラクタを提供するにはどうすればいいですか?

私は、簡単なコンストラクタを持つクラスはすべて共用体の一部である可能性があることを読んだ。特に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; }; 
    }; 
}; 

答えて

0

VC2010はまだC++ 0x仕様のその部分を実装していません。

関連する問題