-std=c++11
フラグを付けてコンパイルしても、GCCのバージョンではこのコードについて不満があり、gccバージョンではUnrestricted unions(> 4.6)がサポートされています。コンストラクタを持つクラスの匿名ユニオン/構造体
union
{
struct
{
float4 I,J,K,T;
};
struct
{
float4 m_lines[4];
};
struct
{
float m16f[16];
};
struct
{
float m44f[4][4];
};
};
float4にはデフォルト以外のコンストラクタがあり、0のパラメータを取ることに注意してください。
私は何ができるでしょうか?エラーは次のとおりです。
<anonymous union>::<anonymous struct>::I’ with constructor not allowed in anonymous aggregate
'float4'クラスからコンストラクタを削除してください。 –
@KerrekSB:まあ、いいえ、私はできません:) – qdii
C++には匿名の構造体がありません。これはコンパイラの拡張機能です –