关于类的友元模板函数,请教!~

发型不乱hy 2013-10-14 10:16:53
声明类的友元模板函数,我看STL源码中如下使用:

template<class T>
class stack
{
...
public:
friend bool operator ==<>(const stack&, const stack&);
...
}


此友元函数的定义式如下:

template<class type>
bool operator ==(const stack<type>&, const stack<type>&)
{...}


我想问的是友元函数的声明不是应该这样吗:

friend bool operator ==<T>(const stack<T>&, const stack<T>&);


书中的声明方式把参数的模板参数和<>中的模板参数都省略的,这样编译器是如何通过的??
...全文
120 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Falleyes 2013-10-16
  • 打赏
  • 举报
回复
引用 1 楼 ri_aje 的回复:
那个 <> 告诉 operator == 是个函数模板,否则编译器默认是个函数,后面调用的时候就会出错了。
+1
ri_aje 2013-10-14
  • 打赏
  • 举报
回复
那个 <> 告诉 operator == 是个函数模板,否则编译器默认是个函数,后面调用的时候就会出错了。
lm_whales 2013-10-14
  • 打赏
  • 举报
回复
类模板内部声明,friend bool operator == 似乎不需要 <>

65,203

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧