Take the following minimal example:
using Type1 = std::function; template using Type2 = std::function;
Void can be interpreted as an empty parameter if you pass it to a function. You're not using a void pointer after all so
void func (void)
becomes
void func ()