免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2215 | 回复: 4
打印 上一主题 下一主题

请问一下g++ 3.2是否支持模板?我写的最简单的模板都编译不过 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-06 15:18 |只看该作者 |倒序浏览
#include <iostream>
using namespace std;
template<class T>
void swap(T &a,T &b);
int main()
{
        cout.precision(2);
        cout.setf(ios::fixed,ios::floatfield);
        int i=10,j=20;
        cout<<"i,j="<<i<<","<<j<<".\n";
        cout<<"using compiler-generated int swapper;\n";
        swap(i,j);
        cout<<"Now i,j="<<i<<","<<j<<endl;
       
        return 0;
        }       
template<class T>
void swap(T &a,T &b)
        {
                T temp;
                temp=a;
                a=b;
                b=temp;
        }



出错信息如下:
hello.cpp: In function `int main()':
hello.cpp:12: call of overloaded `swap(int&, int&)' is ambiguous
hello.cpp:4: candidates are: void swap(T&, T&) [with T = int]
/usr/include/c++/3.2/bits/stl_algobase.h:121:                 void
   std::swap(_Tp&, _Tp&) [with _Tp = int]

论坛徽章:
0
2 [报告]
发表于 2007-10-06 15:22 |只看该作者
swap换个名字吧

论坛徽章:
0
3 [报告]
发表于 2007-10-06 15:26 |只看该作者
换个名字真的可以了,谢谢!照书上写的,swap是关键字了?

论坛徽章:
0
4 [报告]
发表于 2007-10-06 15:29 |只看该作者
compiler不是已经提示你了吗?
std已经实现了swap
overload函数调用出现ambigous

原帖由 lhbzp 于 2007-10-6 15:26 发表
换个名字真的可以了,谢谢!照书上写的,swap是关键字了?

论坛徽章:
0
5 [报告]
发表于 2013-03-22 09:13 |只看该作者
书上是大写的Swap 、、、、、、
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP