`f (void)` ¿significa que no hay parámetros en C ++ 11 o C?

En C ++ 11 la siguiente declaración de función:

int f(void);

significa lo mismo que

int f();

Una lista de parámetros que consiste en un único parámetro sin nombre de tipo no dependiente void es equivalente a una lista de parámetros vacía.

Me da la impresión (quizás falsa) de que esta es una característica antigua, ¿tal vez heredada de C?

¿Alguien conoce la historia o los fundamentos de esta forma para declarar una función sin parámetros?

Respuestas a la pregunta(5)

Su respuesta a la pregunta