Указание параметра по умолчанию при вызове функции C ++

Предположим, у меня есть такой код:

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

Как вы можете видеть выше с моим кодом, параметрыa,b, а такжеc имеют значения параметров по умолчанию 0. Теперь взгляните на мою основную функцию ниже:

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.
}

Теперь я знаю, что не могу просто пропустить параметр и дать ему значение по умолчанию, потому что это значение будет оцениваться как параметр в этой позиции. Я имею в виду, что я не могу, скажем, позвонить,f(a,c), так как,c будет оцениваться какbчто я не хочу, особенно еслиc это неправильный тип. Есть ли способ для вызывающей функции указать в C ++, чтобы использовать любое значение параметра по умолчанию для функции в любой заданной позиции, не ограничиваясь переходом от последнего параметра к нулю? Есть ли зарезервированное ключевое слово для достижения этого или хотя бы обходной путь? Пример, который я могу привести:

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

Ответы на вопрос(5)

Ваш ответ на вопрос