diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2020-08-26 15:53:08 +0200 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2020-08-26 15:53:08 +0200 |
commit | 182f6c2a6453a8e4c84bd64a234194d7b42ea07f (patch) | |
tree | 54bf3afe3873361189d6cb057fb600bd0039678e | |
parent | 8b02c0495ec5d3fae0ab8de6985701337eb8eec6 (diff) | |
parent | 7e7902f9ffa652f78540870170c492a67816b731 (diff) | |
download | ATCD-182f6c2a6453a8e4c84bd64a234194d7b42ea07f.tar.gz |
Merge branch 'unspecified-bool-type' of git://github.com/likema/ACE_TAO into likema-unspecified-bool-type
-rw-r--r-- | ACE/ace/Refcounted_Auto_Ptr.h | 6 | ||||
-rw-r--r-- | ACE/ace/Refcounted_Auto_Ptr.inl | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/ACE/ace/Refcounted_Auto_Ptr.h b/ACE/ace/Refcounted_Auto_Ptr.h index 670243dc1b5..aa133352a35 100644 --- a/ACE/ace/Refcounted_Auto_Ptr.h +++ b/ACE/ace/Refcounted_Auto_Ptr.h @@ -44,6 +44,10 @@ template <class X, class ACE_LOCK> class ACE_Refcounted_Auto_Ptr; template <class X, class ACE_LOCK> class ACE_Refcounted_Auto_Ptr { + /// Used to define a proper boolean conversion for "if (sp) ..." + static void unspecified_bool(ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>***){}; + typedef void (*unspecified_bool_type)(ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>***); + public: /// Constructor that initializes an ACE_Refcounted_Auto_Ptr to /// the specified pointer value. @@ -86,7 +90,7 @@ public: bool operator !() const; /// Check rep easily. - operator bool () const; + operator unspecified_bool_type() const; /// Releases the reference to the underlying representation object. /// @retval The pointer value prior to releasing it. diff --git a/ACE/ace/Refcounted_Auto_Ptr.inl b/ACE/ace/Refcounted_Auto_Ptr.inl index f495076b153..30f3b2e1b02 100644 --- a/ACE/ace/Refcounted_Auto_Ptr.inl +++ b/ACE/ace/Refcounted_Auto_Ptr.inl @@ -128,9 +128,9 @@ ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::operator !() const } template<class X, class ACE_LOCK> inline -ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::operator bool () const +ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::operator unspecified_bool_type () const { - return this->rep_->get () != 0; + return this->rep_->get () != 0 ? unspecified_bool : 0; } template <class X, class ACE_LOCK> inline X* |