autoPtr代码求教
-
在学习autoPtr时看到autoPtrI.H中有这样一段代码不是很理解,下面这个是一个重载操作符吗?没有返回类型啊,重载的又是什么符号?return了一个函数声明?c++中好像没见过这种写法啊。
template<class T> inline Foam::autoPtr<T>::operator const T&() const { return operator()(); }
operator()()函数定义如下:
template<class T> inline T& Foam::autoPtr<T>::operator()() { if (!ptr_) { FatalErrorInFunction << "object of type " << typeid(T).name() << " is not allocated" << abort(FatalError); } return *ptr_; }