Как я могу предотвратить безымянную структуру \ объединение?

Я создаю класс, который имеет объединение для своих матричных данных, однако я могу скомпилировать его только тогда, когда у меня нет имени для структуры \ union. Однако с более высоким уровнем предупреждения (четыре в visual studio) я сделаю предупреждение, сказав

warning C4201: nonstandard extension used : nameless struct/union

, что я изучил это и, похоже, не могу найти способ предотвратить это. В любом случае возможно, что я know of вызовет другую ошибку компилятора, связанную с объявлением того или другого. Как я могу предотвратить получение этого предупреждения и привести его в соответствие со стандартами, не просто отключая предупреждение.

    union
    {
        struct
        {
            F32 _11, _12, _13, _14;
            F32 _21, _22, _23, _24;
            F32 _31, _32, _33, _34;
            F32 _41, _42, _43, _44;
        };
        F32 _m[16];
    };

(Да, я знаю, что есть матричные библиотеки доступно. Пожалуйста, не превращайте это в обсуждение "использовать библиотеку xxx", я делаю это, чтобы расширить свои знания о C ++ ".)

5
задан timrau 27 August 2012 в 14:11
поделиться