How to use CleanupReleasePushL()

CleanupReleasePushL() pushes a TCleanupItem onto the cleanup stack ready for CleanupStack::PopAndDestroy() to release.

The CleanupReleasePushL() templated function constructs and pushes a TCleanupItem onto the cleanup stack. When CleanupStack::PopAndDestroy() is called, the Release() member function of the object encapsulated by the TCleanupItem is called.

...
RTestThree three;
CleanupReleasePushL(three);
...
CleanupStack::PopAndDestroy();
...

The TCleanupItem object encapsulates a reference to the RTestThree object; the cleanup operation is the static function Release() of the templated class CleanupRelease<class T>. This is implemented by simply calling the Release() member function of RTestThree. This means that RTestThree must define or inherit a member function Release() which performs whatever clean up is required.