From 5efb019d8bdc593b3c1a0b57d615b170c7dab02a Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Wed, 1 Mar 2017 06:10:06 -0500 Subject: Add C++ nullptr support (Issue 383) --- smartptr.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'smartptr.h') diff --git a/smartptr.h b/smartptr.h index 605be2ed..cc7874fb 100644 --- a/smartptr.h +++ b/smartptr.h @@ -20,11 +20,11 @@ NAMESPACE_BEGIN(CryptoPP) template class simple_ptr { public: - simple_ptr(T *p = NULL) : m_p(p) {} + simple_ptr(T *p = NULLPTR) : m_p(p) {} ~simple_ptr() { delete m_p; - *((volatile T**)&m_p) = NULL; + m_p = NULLPTR; } T *m_p; @@ -39,7 +39,7 @@ public: template class member_ptr { public: - explicit member_ptr(T *p = NULL) : m_p(p) {} + explicit member_ptr(T *p = NULLPTR) : m_p(p) {} ~member_ptr(); @@ -55,7 +55,7 @@ public: T* release() { T *old_p = m_p; - *((volatile T**)&m_p) = NULL; + m_p = NULLPTR; return old_p; } @@ -80,9 +80,9 @@ template class value_ptr : public member_ptr { public: value_ptr(const T &obj) : member_ptr(new T(obj)) {} - value_ptr(T *p = NULL) : member_ptr(p) {} + value_ptr(T *p = NULLPTR) : member_ptr(p) {} value_ptr(const value_ptr& rhs) - : member_ptr(rhs.m_p ? new T(*rhs.m_p) : NULL) {} + : member_ptr(rhs.m_p ? new T(*rhs.m_p) : NULLPTR) {} value_ptr& operator=(const value_ptr& rhs); bool operator==(const value_ptr& rhs) @@ -94,7 +94,7 @@ public: template value_ptr& value_ptr::operator=(const value_ptr& rhs) { T *old_p = this->m_p; - this->m_p = rhs.m_p ? new T(*rhs.m_p) : NULL; + this->m_p = rhs.m_p ? new T(*rhs.m_p) : NULLPTR; delete old_p; return *this; } @@ -109,9 +109,9 @@ template class clonable_ptr : public member_ptr { public: clonable_ptr(const T &obj) : member_ptr(obj.Clone()) {} - clonable_ptr(T *p = NULL) : member_ptr(p) {} + clonable_ptr(T *p = NULLPTR) : member_ptr(p) {} clonable_ptr(const clonable_ptr& rhs) - : member_ptr(rhs.m_p ? rhs.m_p->Clone() : NULL) {} + : member_ptr(rhs.m_p ? rhs.m_p->Clone() : NULLPTR) {} clonable_ptr& operator=(const clonable_ptr& rhs); }; @@ -119,7 +119,7 @@ public: template clonable_ptr& clonable_ptr::operator=(const clonable_ptr& rhs) { T *old_p = this->m_p; - this->m_p = rhs.m_p ? rhs.m_p->Clone() : NULL; + this->m_p = rhs.m_p ? rhs.m_p->Clone() : NULLPTR; delete old_p; return *this; } -- cgit v1.2.1