Нет, нет.
Та же проблема существует в другом языке, таком как C #, как ясно выражено в "C # In Depth", Глава 13.1.1 (я читал эту часть 15 минут назад, это нормально, я помню это!)
Я предлагаю вам не устанавливать значение по умолчанию в объявлении функции. В функции, если аргумент равен нулю, вы устанавливаете его в 0, и вы знаете, что он не был предоставлен в вызове функции.
Редактировать: Точно так же, как @Remnant сказал в своем ответе, чтобы иметь возможность сделать это, тип параметра должен быть вариантом.