Как обеспечить тривиальные конструкторы классов для членов союза? - PullRequest
0 голосов
/ 14 июля 2011

Как я могу предоставить класс, который имеет конструкторы как часть объединения?

Я читал, что любой класс, имеющий тривиальный конструктор, может быть частью объединения. Особенно с 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 голосов
/ 14 июля 2011

VC2010 пока не реализует эту часть спецификации C ++ 0x.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...