diff --git a/src/Common/COW.h b/src/Common/COW.h index 66b2bbde5b0..048bf134295 100644 --- a/src/Common/COW.h +++ b/src/Common/COW.h @@ -79,22 +79,12 @@ private: Derived * derived() { return static_cast(this); } const Derived * derived() const { return static_cast(this); } - template - class IntrusivePtr : public boost::intrusive_ptr - { - public: - using boost::intrusive_ptr::intrusive_ptr; - - T & operator*() const & { return boost::intrusive_ptr::operator*(); } - T && operator*() const && { return const_cast::type &&>(*boost::intrusive_ptr::get()); } - }; - protected: template - class mutable_ptr : public IntrusivePtr + class mutable_ptr : public boost::intrusive_ptr { private: - using Base = IntrusivePtr; + using Base = boost::intrusive_ptr; template friend class COW; template friend class COWHelper; @@ -123,10 +113,10 @@ public: protected: template - class immutable_ptr : public IntrusivePtr + class immutable_ptr : public boost::intrusive_ptr { private: - using Base = IntrusivePtr; + using Base = boost::intrusive_ptr; template friend class COW; template friend class COWHelper;