get(key[, default])
编译错误:
test.cpp:在函数'int main()'中:test.cpp:15:19:错误:调用 重载'min(int&,long long int&)'是不明确的 COUT<
但是为什么不会自动推断出#include <iostream>
int min(int a, int b){
return a < b ? a : b;
}
long long min(long long a, long long b){
return a < b ? a : b;
}
int main(){
int a = 1;
long long b = 2;
std::cout<<min(a, b);
return 0;
}
?
自动投射long long min(long long a, long long b)
到int a
会不会让它变得更糟?
long long a
这个可以在不编译错误的情况下工作。
#include <iostream>
long long min(long long a, long long b){
return a < b ? a : b;
}
int main(){
int a = 1;
long long b = 2;
std::cout<<min(a, b);
return 0;
}
在/usr/include/c++/4.8/algorithm:62:0中包含的文件中, 来自test.cpp:2:/usr/include/c++/4.8/bits/stl_algo.h:4226:5:注意:模板_Tp std :: min(std :: initializer_list&lt; _Tp&gt;,_Compare) min(initializer_list&lt; _Tp&gt; __l,_Compare __comp) ^ /usr/include/c++/4.8/bits/stl_algo.h:4226:5:注意:模板参数扣除/替换失败:test.cpp:8:29:注意:
不匹配的类型'std :: initializer_list&lt; _Tp&gt;'和'int' 的std :: COUT&LT;