C ++ stl,函数没有返回类型

时间:2012-09-01 20:41:05

标签: c++ stl

template<typename _Tp1>
operator auto_ptr_ref<_Tp1>() throw()
{ return auto_ptr_ref<_Tp1>(this->release()); }

template<typename _Tp1>
operator auto_ptr<_Tp1>() throw()
{ return auto_ptr<_Tp1>(this->release()); }

我在stl类auto_ptr中找到了这两个方法的定义。

有人可以解释一下,其他构造函数的函数怎么没有返回类型?

2 个答案:

答案 0 :(得分:6)

因为它们是分别返回auto_ptr_ref<_Tp1>auto_ptr<_Tp1>的隐式转换运算符。这些本身用作 return-type 声明。

答案 1 :(得分:2)

将运营商转换为auto_ptr_refauto_ptr

n3337 12.3.2 / 1

类X的成员函数,没有参数,其名称为

转换功能-ID: operator convert-type-id

转换型-ID: type-specifier-seq conversion-declaratoropt

转换声明符: ptr-operator conversion-declaratoropt

指定从X转换为convert-type-id 指定的类型。