分享知识

与大家一起分享知识

C++博客 首页 新随笔 联系 聚合 管理
  19 Posts :: 3 Stories :: 45 Comments :: 0 Trackbacks

如下代码:
template <class T>
const T& max(const T& a,const T& b)
{
    return a > b ? a : b;
}

int main()
{
    const float f = max<float>(1.5f,2.5f);
    return 0;
}

这里const float f = max<float>(1.5f,2.5f);这句怎么在编译的时候不能通过呢?我的平台是gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5),希望能够得到大家的帮助.

posted on 2006-04-11 16:19 史传红 阅读(436) 评论(2)  编辑 收藏 引用 所属分类: C/C++细节知识

Feedback

# re: 关于C++模板函数的问题 2006-04-11 17:24 芋头
可以通过啊,gcc 3.4.4。
max<float>(1.5f, 2.5f)也可以简写为max(1.5f, 2.5f),类型可以自动推导出来。  回复  更多评论
  

# re: 关于C++模板函数的问题 2006-04-12 14:11 史传红
原来是我和标准模板库的函数重名了。通过改成:

template <class T>
const T& my_max(const T& a,const T& b)
{
return a > b ? a : b;
}
const float f = my_max(1.5f,2.5f);
就没有问题了。
  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理