注册 登录
编程论坛 C++教室

函数模版的问题——编译出错

zys4416 发布于 2008-10-19 09:14, 615 次点击
我写了以下函数模版的小练习,不过用Dec-C++编译出错,提示:call of overloaded `max(int&, int&)' is ambiguous。
不过用VC++编译确通过。
怎么一回事哪~?

程序代码:
#include<iostream>
using namespace std;

template<typename T>

T max(T a,T b)
{
    return a>b?a:b;
}

int main()
{
    int a=2,b=3;
    float i=2.4,j=3.2;

    cout<<max(a,b)<<endl;
    cout<<max(i,j)<<endl;
   
    return 0;
}
4 回复
#2
blueboy820062008-10-19 09:26
说是二义性...
但我用VC却通过了...
没看出什么问题...
#3
sunkaidong2008-10-19 09:41
overloaded `max(int&, int&)'
是不是和标准库冲突了?
#4
blueboy820062008-10-19 10:03
[bo][un]sunkaidong[/un] 在 2008-10-19 09:41 的发言:[/bo]

overloaded `max(int&, int&)'
是不是和标准库冲突了?

嗯,果然改了名字就通过了...
不明白VC为什么不改也能过.....
#5
zys44162008-10-19 17:27
加&不就是引用吗?为什么要这样……
1