why would you use foo<void> in C and not C++?