现在的位置: 首页 > 综合 > 正文

自定义压栈

2013年08月09日 ⁄ 综合 ⁄ 共 522字 ⁄ 字号 评论关闭

#include <e32base.h>

template< class T >
class CleanupResetAndDestroy
{
public:
 inline static void PushL( T& aRef );
private:
 static void ResetAndDestroy( TAny *aPtr );
};

template< class T >
inline void CleanupResetAndDestroy<T>::PushL( T& aRef )
{
 CleanupStack::PushL( TCleanupItem( &ResetAndDestroy, &aRef ) );
}

template< class T >
inline void CleanupResetAndDestroy<T>::ResetAndDestroy( TAny* aPtr )
{
 T* ptr = static_cast<T*>( aPtr );
 ptr->ResetAndDestroy();
 ptr->Close();
}

template< class T >
void CleanupResetAndDestroyPushL( T& aRef )
{
 CleanupResetAndDestroy<T>::PushL( aRef );
}

 

抱歉!评论已关闭.