Llamada de función con parámetro predeterminado

Escribí un examen sobre la programación en C ++. Había una pregunta en la que mi profesor y yo no estábamos de acuerdo. La pregunta era, ¿funciona o no la siguiente función?

#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;
}

Dije que no funcionaría, pero mi profesor dijo que definitivamente funcionará debido al parámetro predeterminado en la declaración de función. Lo probé con MSVC y no funcionó. ¿Es ese compilador específico? ¿Cómo puedo convencer a mi profesor de que no funciona en ningún compilador para poner mi marca en el examen?

Respuestas a la pregunta(4)

Su respuesta a la pregunta