In the following code snippets, In function call f(1), 1 is a literal of type int and in first function void f(double d) argument type is double and second function void f(short int i) argument type is short int.
Here 1 is an int type not a double type, then Why does compiler generated ambiguous error?
#include <iostream>
using namespace std;
void f(double d) // First function
{
cout<<d<<endl;
}
void f(short int i) // Second function
{
cout<<i<<endl;
}
int main()
{
f(1); // 1 is a literal of type int
return 0;
}