Когда ньюфаги пишут, что функция void f(<неважно>)
ничего не возвращает, то их поправляют: «нет, вы не правы, ньюфаги, эта функция возвращает void».
Отсюда можно сделать вывод, что тип void
в C/C++ это тип-синглтон, т.к. именование типа и значения одним ключевым словом обычно говорит о том, что значение единственно. См. тип ()
в Haskell.
Тогда почему нельзя создавать переменные типа void
(НЕ указатель на него!) и передавать их в функции, принимающие void
? Это бы позволило создавать композиции функций: g(f(<аргументы для f>))
, где
void f(<параметры f>);
<возвращаемый тип g> g(void);
void
как частный случай при композиции.