У меня есть следующий код:пустота, VOID, C и C++
typedef void VOID;
int f(void);
int g(VOID);
который компилирует только штрафом в C (с помощью GCC 4.3.2 на Fedora 10). Тот же самый код компилируется как C++ дает мне следующую ошибку:
void.c:3: error: ‘<anonymous>’ has incomplete type
void.c:3: error: invalid use of ‘VOID’
Теперь, это то, что во внешней библиотеке, и я хотел бы, чтобы владелец, чтобы исправить эту проблему. Поэтому у меня есть вопрос - запрещает ли C++ стандарт этой конструкции? Не могли бы вы дать мне указатель/цитату? Единственное, что я могу вспомнить, это то, что объявление функции с (void), чтобы сигнализировать пустой список параметров, устарело в C++, но я не понимаю, почему typedefed VOID не работает.
Для чего это необходимо, Visual C++ 2008 не имеет проблемы с этим кодом. –
В windows.h обычно определяется '#define VOID void'. – Ismael