diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2020-12-16 20:29:05 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2021-02-24 16:40:04 +0300 |
commit | 8e761289a2446367267c6c0d9a26e734f0f78306 (patch) | |
tree | fb495d8c18801f271d124ee48731f10df396ca89 /cutl/static-ptr.hxx | |
parent | 4c8104756b92b9fa16b3a725e8a6aa620dfd606e (diff) |
Get rid of legacy build systems and rename cutl/ to libcutl/
Diffstat (limited to 'cutl/static-ptr.hxx')
-rw-r--r-- | cutl/static-ptr.hxx | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/cutl/static-ptr.hxx b/cutl/static-ptr.hxx deleted file mode 100644 index 5ac15d8..0000000 --- a/cutl/static-ptr.hxx +++ /dev/null @@ -1,73 +0,0 @@ -// file : cutl/static-ptr.hxx -// license : MIT; see accompanying LICENSE file - -#ifndef CUTL_STATIC_PTR_HXX -#define CUTL_STATIC_PTR_HXX - -#include <cstddef> // std::size_t - -namespace cutl -{ - // This class template implements Jerry Schwarz's static - // initialization technique commonly found in iostream - // implementations. - // - // The second template argument is used to make sure the - // instantiation of static_ptr is unique. - // - template <typename X, typename ID> - class static_ptr - { - public: - static_ptr () - { - if (count_ == 0) - x_ = new X; - - ++count_; - } - - ~static_ptr () - { - if (--count_ == 0) - delete x_; - } - - private: - static_ptr (static_ptr const&); - - static_ptr& - operator= (static_ptr const&); - - public: - X* - operator-> () const - { - return x_; - } - - X& - operator* () const - { - return *x_; - } - - X* - get () const - { - return x_; - } - - private: - static X* x_; - static std::size_t count_; - }; - - template <typename X, typename ID> - X* static_ptr<X, ID>::x_ = 0; - - template <typename X, typename ID> - std::size_t static_ptr<X, ID>::count_ = 0; -} - -#endif // CUTL_STATIC_PTR_HXX |