Given a function in C++ with arguments that are only types and have no identifiers,
void foo1(int, int, int){cout << \"called foo1\";}
I
It's legal, and if you're wondering why:
Typically, unnamed arguments arise from the simplification of code or from planning ahead for extensions. In both cases, leaving the argument in place, although unused, ensures that callers are not affected by the change.
Excerpt From: Bjarne Stroustrup. “The C++ Programming Language, Fourth Edition.”