`f (void)` significa nenhum parâmetro em C ++ 11 ou C?

Em C ++ 11 a seguinte declaração de função:

int f(void);

significa o mesmo que:

int f();

Uma lista de parâmetros que consiste em um único parâmetro sem nome do tipo não dependente void é equivalente a uma lista de parâmetros vazia.

Eu tenho a impressão (talvez falsa) de que esta é uma característica antiga, talvez herdada de C?

Alguém conhece a história ou a lógica por trás dessa maneira para declarar uma função sem parâmetros?

questionAnswers(5)

yourAnswerToTheQuestion