即使我使用-std=c++11
標誌進行編譯,我的gcc版本應該支持Unrestricted union(> 4.6),但GCC對此代碼抱怨。具有構造函數的類的匿名聯合/結構
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'類中移除構造函數。 – 2012-03-11 12:06:13
@KerrekSB:恩,不,我不能:) – qdii 2012-03-11 12:14:40
C++沒有匿名結構......它是你的編譯器的擴展 – 2012-03-11 12:25:03