call of overloaded ... is ambiguous

照着c++ primer上写的一个函数模板例子

using namespace std;

template <class T>
T min(T a, T b) {
return a < b ? a : b;
}

int main() {
cout<<min(10, 32)<<endl;
cout<<min(24.1, 2.0)<<endl;
return 0;
}



出现了如下错误:

function_template.cpp: In function `int main()':
function_template.cpp:11: error: call of overloaded `min(int, int)' is

ambiguous
function_template.cpp:6: note: candidates are: T min(T, T) [with T = int]
D:/Program Files/mingw/MinGW/bin/../lib/gcc/
mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_algobase.h:151:
note: const _Tp& std::min(const _Tp&, const _Tp&)
[with _Tp = std::streamsize]

function_template.cpp:12: error: call of overloaded `min(double, double)'

is ambiguous
function_template.cpp:6: note: candidates are: T min(T, T) [with T =

double]
D:/Program Files/mingw/MinGW/bin/../lib/gcc/
mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_algobase.h:151:
note: const _Tp& std::min(const _Tp&, const _Tp&) [with _Tp = double]


原因是std中已经有了一个名字叫min的函数(在stl_algobase.h文件的148行),导致名字冲突,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值