Они не принимают никаких аргументов, однако мне интересно, полезно ли это, или нет. Есть ли причина, по которой вы хотели бы это сделать?
Ответ 1
В стандарте С++ 03 говорится (основное внимание):
8.3.5.2
Параметр-объявление-предложение определяет аргументы, которые могут быть и их обработку, когда вызывается функция. [Заметка: Параметр-объявление-предложение используется для преобразования аргументов указанный в вызове функции; см. 5.2.2. ] Если Параметр-объявление-предложение пуст, функция не принимает Аргументы.
Это означает, что если вы разговариваете с компилятором, это просто вопрос вкуса.
Если вы пишете код, который будет читаться другими, то способ выполнения С++ - это
void foo();
Другая форма остается в силе только по соображениям совместимости с C, где между двумя сигнатурами существует разница.
Ответ 2
Это удержание из более старых версий C, где foo() означает "функция с неизвестным числом параметров" и foo(void) означает "функция с нулевыми параметрами". В С++, foo() и foo(void) означают "функцию с нулевыми параметрами", но некоторые предпочитают вторую форму, потому что она более явная.
Ответ 3
Это наследие старых версий C для функций без аргументов
Ответ 4
В коде на С++ нет никакой причины использовать void таким образом. Что еще более не является идиоматическим способом объявить параметрические функции.