⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 singleton.cpp

📁 Windows Mobile平台上使用GDI+。GDI+功能很强大
💻 CPP
字号:
////////////////////////////////////////////////////////////////////////////////// The Loki Library// Copyright (c) 2001 by Andrei Alexandrescu// This code accompanies the book:// Alexandrescu, Andrei. "Modern C++ Design: Generic Programming and Design //     Patterns Applied". Copyright (c) 2001. Addison-Wesley.// Permission to use, copy, modify, distribute and sell this software for any //     purpose is hereby granted without fee, provided that the above copyright //     notice appear in all copies and that both that copyright notice and this //     permission notice appear in supporting documentation.// The author or Addison-Wesley Longman make no representations about the //     suitability of this software for any purpose. It is provided "as is" //     without express or implied warranty.////////////////////////////////////////////////////////////////////////////////// $Id: Singleton.cpp 756 2006-10-17 20:05:42Z syntheticpp $#include <loki/Singleton.h>#ifdef LOKI_ENABLE_NEW_SETLONGLIVITY_HELPER_DATA_IMPLLoki::Private::TrackerArray* Loki::Private::pTrackerArray = 0;#elseLoki::Private::TrackerArray Loki::Private::pTrackerArray = 0;unsigned int Loki::Private::elements = 0;#endif////////////////////////////////////////////////////////////////////////////////// function AtExitFn// Ensures proper destruction of objects with longevity////////////////////////////////////////////////////////////////////////////////#ifdef LOKI_ENABLE_NEW_SETLONGLIVITY_HELPER_DATA_IMPLvoid LOKI_C_CALLING_CONVENTION_QUALIFIER Loki::Private::AtExitFn(){    assert(pTrackerArray!=0 && !pTrackerArray->empty());        // Pick the element at the top of the stack    LifetimeTracker* pTop = pTrackerArray->back();        // Remove that object off the stack _before_ deleting pTop    pTrackerArray->pop_back();        // Destroy the element    delete pTop;        // Destroy stack when it's empty _after_ deleting pTop    if(pTrackerArray->empty())    {        delete pTrackerArray;        pTrackerArray = 0;    }}#elsevoid LOKI_C_CALLING_CONVENTION_QUALIFIER Loki::Private::AtExitFn(){    assert(elements > 0 && pTrackerArray != 0);    // Pick the element at the top of the stack    LifetimeTracker* pTop = pTrackerArray[elements - 1];    // Remove that object off the stack    // Don't check errors - realloc with less memory     //     can't fail    pTrackerArray = static_cast<TrackerArray>(std::realloc(        pTrackerArray, sizeof(*pTrackerArray) * --elements));    // Destroy the element    delete pTop;}#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -