tengo el siguiente código:nula, inválida, C y C++
typedef void VOID;
int f(void);
int g(VOID);
que compila bien en C (usando gcc 4.3.2 en Fedora 10). El mismo código compilado como C++ me da el siguiente error:
void.c:3: error: ‘<anonymous>’ has incomplete type
void.c:3: error: invalid use of ‘VOID’
Ahora, esto es algo en la biblioteca externa y me gustaría que el propietario para solucionar ese problema. Entonces tengo una pregunta: ¿el estándar C++ prohíbe esta construcción? ¿Podría darme un puntero/cita? Lo único que recuerdo es que la declaración de función con (void) para señalar la lista de parámetros vacíos está en desuso en C++, pero no entiendo por qué typedefed VOID no funciona.
Por lo que vale, Visual C++ 2008 no tiene un problema con ese código. –
En windows.h suele ser un definir '#define VOID void'. – Ismael