Ошибка G++: '' имеет неполный тип

Я вынужден использовать стороннюю библиотеку доступа к ключу, которая предоставляет включаемый файл 'sense4.h' со следующим кодом:

#if !defined _WINDOWS_

#define WINAPI
#define CONST const

typedef unsigned char   UCHAR;
typedef unsigned short  USHORT;
typedef unsigned int    UINT;
typedef unsigned long   ULONG;

typedef char            CHAR;
typedef char            TCHAR;

typedef void            VOID;

...

#endif /* !defined _WINDOWS */

...

unsigned long WINAPI S4Startup(
        VOID
);


unsigned long WINAPI S4Cleanup(
        VOID
);

...

Проблема в том, что g++ 4.6.1 жалуется на строки кода, где используется typedefed VOID:

sense4.h:375:9: error: ‘’ has incomplete type
sense4.h:376:1: error: invalid use of ‘VOID {aka void}’
sense4.h:383:9: error: ‘’ has incomplete type
sense4.h:384:1: error: invalid use of ‘VOID {aka void}’

Могу ли я что-нибудь сделать, не изменяя включаемый файл 'sense.h', чтобы мой проект компилировался с помощью g++?

Обновление 1

Я обнаружил, что в разделе 18 C++ Standard Core Language Closed Issues, Revision 30говорится:

Если пункт объявления параметра пуст, функция не принимает аргументы. Список параметров (void) эквивалентен пустому списку параметров.

Можно ли использовать typedef для void вместо типа void в списке параметров?

Обоснование: IS уже ясно, что это не разрешено.

6
задан ezpresso 16 March 2012 в 18:51
поделиться