Какой результат работы программы?

#include <iostream> 
using namespace std; 
 
void f(double) { cout << "f1" << endl; } 
 
void f(const int ) { cout << "f2" << endl; } 
 
void f( int & ) { cout << "f3" << endl; } 
 
void main(void) {  
    int n = 1; 
    double b = 2; 
    f(n); 
    f(b); 
} 
f2 f1
f3 f1
f3 f3
f2 f2
Ошибка компиляции
Ошибка выполнения