Especificar el parámetro predeterminado al llamar a la función C ++

Supongamos que tengo un código como este:

void f(int a = 0, int b = 0, int c = 0)
{
    //...Some Code...
}

Como evidentemente puede ver arriba con mi código, los parámetrosa,byc tienen valores de parámetro predeterminados de 0. Ahora eche un vistazo a mi función principal a continuación:

int main()
{
   //Here are 4 ways of calling the above function:
   int a = 2;
   int b = 3;
   int c = -1;

   f(a, b, c);
   f(a, b);
   f(a); 
   f();
   //note the above parameters could be changed for the other variables
   //as well.
}

Ahora sé que no puedo omitir un parámetro y dejar que tenga el valor predeterminado, porque ese valor se evaluaría como el parámetro en esa posición. Lo que quiero decir es que no puedo, digamos llamar,f(a,c), porque,c sería evaluado comob, que es lo que no quiero, especialmente sic Es el tipo incorrecto. ¿Hay alguna manera de que la función de llamada especifique en C ++, para usar cualquier valor de parámetro predeterminado que haya para la función en cualquier posición, sin limitarse a retroceder desde el último parámetro a ninguno? ¿Hay alguna palabra clave reservada para lograr esto, o al menos una solución alternativa? Un ejemplo que puedo dar sería como:

f(a, def, c) //Where def would mean default.

Respuestas a la pregunta(5)

Su respuesta a la pregunta