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

📄 lifetimewithlongevity.inl

📁 sip 开源代码 源于novell sip 开源代码 源于novell
💻 INL
字号:
template< typename T, typename TDestroyer >voidutilspp::setLongevity( T *obj, unsigned int longevity, TDestroyer d ){   using namespace utilspp::PrivateMembers;   TrackerArray newArray = static_cast< TrackerArray >(          std::realloc(mTrackerArray, mNbElements + 1));   if( newArray == NULL )   {      throw std::bad_alloc();   }   LifetimeTracker *p = 	new ConcreteLifetimeTracker< T, TDestroyer >(obj, longevity, d);   mTrackerArray = newArray;   TrackerArray pos = std::upper_bound(          mTrackerArray,          mTrackerArray + mNbElements,         p,         &LifetimeTracker::compare);   std::copy_backward(          pos,          mTrackerArray + mNbElements,          mTrackerArray + mNbElements + 1);   *pos = p;   mNbElements++;   std::atexit( &atExitFunc );}template< typename T >void utilspp::LifetimeWithLongevity< T >::scheduleDestruction( T *obj, void (*func)() ){   utilspp::PrivateMembers::adapter<T> adapter = { func };   utilspp::setLongevity( obj, getLongevity( obj ), adapter );}template< typename T >void utilspp::LifetimeWithLongevity< T >::onDeadReference(){   throw std::logic_error("Dead reference detected");}template< typename T >unsigned int utilspp::getLongevity( T * ){   return 1000;}

⌨️ 快捷键说明

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