From 8e761289a2446367267c6c0d9a26e734f0f78306 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 16 Dec 2020 20:29:05 +0300 Subject: Get rid of legacy build systems and rename cutl/ to libcutl/ --- cutl/shared-ptr.hxx | 157 ---------------------------------------------------- 1 file changed, 157 deletions(-) delete mode 100644 cutl/shared-ptr.hxx (limited to 'cutl/shared-ptr.hxx') diff --git a/cutl/shared-ptr.hxx b/cutl/shared-ptr.hxx deleted file mode 100644 index 62dfb62..0000000 --- a/cutl/shared-ptr.hxx +++ /dev/null @@ -1,157 +0,0 @@ -// file : cutl/shared-ptr.hxx -// license : MIT; see accompanying LICENSE file - -#ifndef CUTL_SHARED_PTR_HXX -#define CUTL_SHARED_PTR_HXX - -#include - -namespace cutl -{ - template - class shared_ptr: bits::counter_ops::r, X> - { - typedef bits::counter_ops::r, X> base; - - public: - ~shared_ptr () - { - if (x_ != 0) - base::dec (x_); - } - - explicit - shared_ptr (X* x = 0) - : base (x), x_ (x) - { - } - - shared_ptr (shared_ptr const& x) - : base (x), x_ (x.x_) - { - if (x_ != 0) - base::inc (x_); - } - - template - shared_ptr (shared_ptr const& x) - : base (x), x_ (x.x_) - { - if (x_ != 0) - base::inc (x_); - } - - shared_ptr& - operator= (shared_ptr const& x) - { - if (x_ != x.x_) - { - if (x_ != 0) - base::dec (x_); - - static_cast (*this) = x; - x_ = x.x_; - - if (x_ != 0) - base::inc (x_); - } - - return *this; - } - - template - shared_ptr& - operator= (shared_ptr const& x) - { - if (x_ != x.x_) - { - if (x_ != 0) - base::dec (x_); - - static_cast (*this) = x; - x_ = x.x_; - - if (x_ != 0) - base::inc (x_); - } - - return *this; - } - - public: - X* - operator-> () const - { - return x_; - } - - X& - operator* () const - { - return *x_; - } - - // Conversion to bool. - // - typedef void (shared_ptr::*boolean_convertible)(); - void true_value () {}; - - operator boolean_convertible () const - { - return x_ ? &shared_ptr::true_value : 0; - } - - public: - X* - get () const - { - return x_; - } - - X* - release () - { - X* r (x_); - x_ = 0; - return r; - } - - void - reset (X* x = 0) - { - if (x_ != 0) - base::dec (x_); - - base::reset (x); - x_ = x; - } - - std::size_t - count () const - { - return x_ != 0 ? base::count (x_) : 0; - } - - private: - template - friend class shared_ptr; - - X* x_; - }; - - template - inline bool - operator== (const shared_ptr& x, const shared_ptr& y) - { - return x.get () == y.get (); - } - - template - inline bool - operator!= (const shared_ptr& x, const shared_ptr& y) - { - return x.get () != y.get (); - } -} - -#endif // CUTL_SHARED_PTR_HXX -- cgit v1.1