如下图:[Error] call of overloaded 'print(long int&)' is ambiguous 为什么会报错?

求大佬解答!
#include
using namespace std;

int print(int i){
return i*i;
}

double print(double d){
return 2*d;
}

int main(){
long l=10;
cout<<print(l)<<endl;
}
图片说明

double print(double d)
==>
double print_d(double d)

完整代码;

#include <iostream>

using namespace std;

int print(int i){
    return i*i;
}

double print_d(double d){
    return 2*d;
}

int main(){
    long l=10;
    cout<<print(l)<<endl;

    double d = 8.9;
    cout<<print_d(d)<<endl;
    return 0;
}