diff options
Diffstat (limited to 'libcutl/cutl/static-ptr.hxx')
| -rw-r--r-- | libcutl/cutl/static-ptr.hxx | 74 | 
1 files changed, 0 insertions, 74 deletions
diff --git a/libcutl/cutl/static-ptr.hxx b/libcutl/cutl/static-ptr.hxx deleted file mode 100644 index 6c907c8..0000000 --- a/libcutl/cutl/static-ptr.hxx +++ /dev/null @@ -1,74 +0,0 @@ -// file      : cutl/static-ptr.hxx -// copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC -// 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  | 
