chamada de função com o parâmetro padrão

Eu escrevi um exame sobre programação em C ++. Houve uma pergunta em que eu e meu professor não concordamos. A questão era: a seguinte função funciona ou não:

#include <iostream>
using namespace std;

void f(int=4, long=10, double=3.14);

int main( int argc , char ** argv )
{
    f( , ,8);
      return EXIT_SUCCESS;
}

void f(int i, long l, double d) {
    cout << i << " " << " " << l << " " << d;
}

Eu disse que não funcionaria, mas meu professor disse que definitivamente funcionará por causa do parâmetro padrão na declaração da função. Eu tentei com MSVC e não funcionou. Isso é específico do compilador? Como posso convencer meu professor de que não funciona em nenhum compilador, para deixar minha marca no exame?

questionAnswers(4)

yourAnswerToTheQuestion