From 8286ac511144e4f17d34eac9affb97e50646344a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Wed, 23 Jul 2014 15:25:44 +0200 Subject: Imported Upstream version 4.0.0 --- libcult/cult/mm/static-ptr.hxx | 75 ------------------------------------------ 1 file changed, 75 deletions(-) delete mode 100644 libcult/cult/mm/static-ptr.hxx (limited to 'libcult/cult/mm/static-ptr.hxx') diff --git a/libcult/cult/mm/static-ptr.hxx b/libcult/cult/mm/static-ptr.hxx deleted file mode 100644 index d3dffbd..0000000 --- a/libcult/cult/mm/static-ptr.hxx +++ /dev/null @@ -1,75 +0,0 @@ -// file : cult/mm/static-ptr.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef CULT_MM_STATIC_PTR_HXX -#define CULT_MM_STATIC_PTR_HXX - -#include - -#include // operator new - -namespace Cult -{ - namespace MM - { - namespace Bits - { - struct Default {}; - } - - template - class StaticPtr: public NonCopyable - { - public: - X& - operator* () const - { - return instance (); - } - - X* - operator-> () const - { - return &instance (); - } - - public: - StaticPtr () - { - if (i_ == 0) i_ = instance_ (); - } - - ~StaticPtr () - { - // Note that we don't delete the object in order to avoid - // destruction order problem. - // - } - - private: - static X& - instance () - { - if (i_ == 0) i_ = instance_ (); - - return *i_; - } - - static X* - instance_ () - { - static X* i = new (KeyList ()) X; - return i; - } - - static X* i_; - }; - - template - X* StaticPtr::i_ = 0; - } -} - -#endif // CULT_MM_STATIC_PTR_HXX -- cgit v1.2.3