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