The parameter name isn’t required if the function doesn’t need to reference the parameter, and leaving it unnamed avoids a compiler warning about an unused parameter.
The default value allows callers to call the function with a single argument, and the compiler will treat it as if they called it with two arguments, with the second argument being specified as the default value.
As for why the programmer might include a second, unnamed, unused argument rather than just having the function take a single argument — one reason might be that the user wants the function to fit a particular interface that takes two arguments (eg for inheritance or SFINAE purposes)… or maybe they are planning to change the function to actually use the second argument later, but haven’t got around to doing it yet.