C++ 模糊重载函数引用

C++ 模糊重载函数引用,c++,C++,有人能帮我理解为什么这两个函数调用不明确: int greater(int i, int j) { return ( i > j ? i : j); } double greater(double x, double y) { return ( x > y ? x : y); } int main(){ int i = 10, j = 5; double x = 7.

有人能帮我理解为什么这两个函数调用不明确:

int             greater(int i, int j)           { return ( i > j ? i : j); }
double          greater(double x, double y)     { return ( x > y ? x : y); }

int main(){
int          i = 10,         j = 5;
double       x = 7.7,        y = 14.5;
cout << greater(i, j);
cout << greater(x, y);
}
intgreater(inti,intj){return(i>j?i:j);}
双大(双x,双y){返回(x>y?x:y);}
int main(){
int i=10,j=5;
双x=7.7,y=14.5;

根据您的用法,这两个函数是不明确的

由于以下(假定)行,您将收到一个错误:

这一行使函数不明确,因为
std::greater
现在是候选函数


根据您的用法,这两个功能并不含糊

由于以下(假定)行,您将收到一个错误:

这一行使函数不明确,因为
std::greater
现在是候选函数


顺便说一句,欢迎来到堆栈溢出。顺便说一句,欢迎来到堆栈溢出。
reference to ‘greater’ is ambiguous cout << greater(i, j);
using namespace std;