读书人

primer关于模板的一道习题解决方法

发布时间: 2012-03-11 18:15:39 作者: rapoo

primer关于模板的一道习题
为什么编译报错,“T”is ambiguous.

#include <iostream>
using namespace std;

template <typename T>
int compare(const T &v1, const T &v2)
{
if(v1 <v2) return -1;
if(v2 <v1) return 1;
return 0;
}

int main()
{
compare( "hi ", "world ");//这里报错

return 0;
}

[解决办法]
"hi " 类型是const char[3]
"world "类型是const char[6]
类型不匹配,推不出T是什么类型

这样写 compare( "hi ", "world ");就可以通过编译了。
[解决办法]
lann64
是对的,受教了,发现一个理解的误区
文本字符串常量的类型是字符数组,可以用来初始化一个字符指针,但类型不是字符指针

读书人网 >C++

热点推荐