As this question reiterates, a default parameter can be provided for the first argument in a C++ function. So the following
void foo(int a, int b=5); // good
void foo(int a=5, int b=5); // used to be an error
void foo(int a=5); // used to be an error
However, I remember learning early on in my programming education that this was not allowed. At which point did this begin to change? What C++ standard removed this limitation? Since I did most of my early programming in Visual Studio, perhaps this wasn't even a standards issue, but a specific compiler limitation, if you so, do you also remember which (approximately) compiler versions had this limitation?