ENH: explicit convert to bool operator for autoPtr

- behaves the same as the valid() method, but can be queried directly
  like a normal raw pointer and as per std::unique_ptr.
  Eg,

      autoPtr<T> ptr = ...

      if (ptr) ...
This commit is contained in:
Mark Olesen
2018-07-30 14:33:22 +02:00
parent ff26b96a80
commit 215570915e
3 changed files with 26 additions and 1 deletions

View File

@ -234,6 +234,8 @@ public:
operator const T&() const = delete;
#endif
//- True if the managed pointer is non-null
explicit inline operator bool() const noexcept;
//- Transfer object ownership from parameter
inline void operator=(autoPtr<T>&& ap) noexcept;

View File

@ -260,6 +260,13 @@ inline const T& Foam::autoPtr<T>::operator()() const
}
template<class T>
inline Foam::autoPtr<T>::operator bool() const noexcept
{
return ptr_;
}
template<class T>
inline void Foam::autoPtr<T>::operator=(autoPtr<T>&& ap) noexcept
{