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.