Did you encounter the problem?
by Barry Revzin
From the article:
In C++, void is a pretty strange thing. We can cast expressions to void, throw-expressions have void type, void* can point to anything, and void functions can actually return back to the caller. But we can’t have objects of type void or even write a type like void&. A function declaration like void f(void) is actually a nullary function. It’s a bit weird — but it’s not something a lot of people lose sleep over.
Until it starts wreaking havoc on your generic code — because it’s like the vector<bool> of the type system...