diff --git a/EgtPointerOwner.h b/EgtPointerOwner.h index fd5256f..10a7178 100644 --- a/EgtPointerOwner.h +++ b/EgtPointerOwner.h @@ -7,7 +7,7 @@ // // // Modifiche : 25.11.13 DS Creazione modulo. -// 27.03.23 DS Aggiunta Set( PtrOwner& RPT). +// 27.03.23 DS Aggiunta Set( PtrOwner& RPT). // //---------------------------------------------------------------------------- @@ -25,11 +25,11 @@ class PtrOwner PtrOwner( const PtrOwner& RPT) = delete ; ~PtrOwner( void) { Reset() ; } bool Set( T* pT) { Reset() ; m_pT = pT ; return ( m_pT != nullptr) ; } - bool Set( PtrOwner& RPT) - { if ( this == &RPT) - return true ; - return Set( Release( RPT)) ; - } + template bool Set( PtrOwner& RPT) + { if ( (void*) this == (void*) &RPT) + return true ; + return Set( Release( RPT)) ; + } void Reset( void) { if ( m_pT != nullptr) delete m_pT ; m_pT = nullptr ; } T& operator*() const { return *m_pT ; } T* operator->() const { return m_pT ; }