typedef enum BeNeLux
{
BELGIUM,
NETHERLANDS,
LUXEMBURG
} _ASSOCIATIONS_ BeNeLux;
Kiedy próbuję skompilować to za pomocą kompilatora C++, otrzymuję błędy, ale wydaje się, że działa dobrze z kompilatorem C. Oto pytanie. Czy możliwe jest spakowanie enum w C++, czy ktoś może zobaczyć, dlaczego dostanę błąd?C++ pakowanie wyliczenia typedef
Błąd jest:
"średnik brakuje po deklaracji Beneluksu".
Wiem, po sprawdzeniu i ponownym sprawdzeniu, że tam zdecydowanie znajduje się tam średnik oraz w miejscach wymaganych w pozostałej części kodu.
Uzupełnienie:
_PACKAGE_
był tylko przykład. Zmieniam jego nazwę.
_ASSOCIATIONS_
nie jest typem Beneluksu:
#define _ASSOCIATIONS_ __attribute__((packed))
Kod jest iffed, ale tylko upewnić się, że jest GNU C/C++.
#if defined (__GNUC__)
#define _ASSOCIATIONS_ __attribute__((packed))
#else
#define _ASSOCIATIONS_
Czy to może powodować problemy? Pomyślałem (GNUC) pracował zarówno dla C i C++
Addendum 2:
Próbowałem nawet
#ifdef __cplusplus
extern "C" {
#endif
typedef enum BeNeLux
{
BELGIUM,
NETHERLANDS,
LUXEMBURG
} _ASSOCIATIONS_ BeNeLux;
#ifdef __cplusplus
}
#endif
No radość. Ktoś?
Uwaga: -wybrane-wyrazy nie są możliwe; szukanie rozwiązania programowego.
Co oznacza '_PACKAGE_'? – wilhelmtell
To jest niestandardowa funkcja. Z jakiego kompilatora C korzystasz? – Potatoswatter
Używanie gcc w wersji 3.3.5 lub niższej (musisz użyć tej starszej wersji) – Sagar