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中找到了这两个方法的定义。
有人可以解释一下,其他构造函数的函数怎么没有返回类型?
答案 0 :(得分:6)
因为它们是分别返回auto_ptr_ref<_Tp1>
和auto_ptr<_Tp1>
的隐式转换运算符。这些本身用作 return-type 声明。
答案 1 :(得分:2)
将运营商转换为auto_ptr_ref
和auto_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 指定的类型。