Я использую код с открытым исходным кодом, который объявил статическое объединение внутри класса следующим образом.
VAD.h
:
class VD
{
public:
static union Wu
{
const short w[2 * 64];
const double y[16];
} wu;
};
VAD.cpp
:
VD:: Wu VD:: wu =
{
0x0000, 0x7FFF, 0x0000, 0x7FFF, 0x0000, 0x7FFF, 0x0C8B, 0x7F61,
0x18F8, 0x7D89, 0x2527, 0x7A7C, 0x18F8, 0x7D89, 0x30FB, 0x7641,
0x471C, 0x6A6D, 0x2527, 0x7A7C, 0x471C, 0x6A6D, 0x62F1, 0x5133,
0x30FB, 0x7641, 0x5A82, 0x5A82, 0x7641, 0x30FB, 0x3C56, 0x70E2,
0x6A6D, 0x471C, 0x7F61, 0x0C8B, 0x471C, 0x6A6D, 0x7641, 0x30FB,
0x7D89, -0x18F8, 0x5133, 0x62F1, 0x7D89, 0x18F8, 0x70E2, -0x3C56,
0x5A82, 0x5A82, 0x7FFF, 0x0000, 0x5A82, -0x5A82, 0x62F1, 0x5133,
0x7D89, -0x18F8, 0x3C56, -0x70E2, 0x6A6D, 0x471C, 0x7641, -0x30FB,
0x18F8, -0x7D89, 0x70E2, 0x3C56, 0x6A6D, -0x471C, -0x0C8B, -0x7F61,
0x7641, 0x30FB, 0x5A82, -0x5A82, -0x30FB, -0x7641, 0x7A7C, 0x2527,
0x471C, -0x6A6D, -0x5133, -0x62F1, 0x7D89, 0x18F8, 0x30FB, -0x7641,
-0x6A6D, -0x471C, 0x7F61, 0x0C8B, 0x18F8, -0x7D89, -0x7A7C, -0x2527,
0x0000, 0x7FFF, 0x0000, 0x7FFF, 0x0000, 0x7FFF, 0x30FB, 0x7641,
0x5A82, 0x5A82, 0x7641, 0x30FB, 0x5A82, 0x5A82, 0x7FFF, 0x0000,
0x5A82, -0x5A82, 0x7641, 0x30FB, 0x5A82, -0x5A82, -0x30FB, -0x7641
};
, когда я скомпилировал этот код с использованием VC ++ 6.0 для Windows ... произошла эта ошибка:
public: static union VD :: Wu VD :: wu ': не-агрегаты не могут быть инициализированы списком инициализаторов
Кто-нибудь может мне помочь, пожалуйста?