Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Essential Tools Module User's Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

11.1 Introduction

To support better resource control, the Tools Module includes scope guard classes that implement the C++ idiom "Resource Acquisition Is Initialization" (RAII). These classes provide a simple mechanism to allow an object to take ownership of a resource and to release that resource, thus avoiding potentially unsafe or verbose error handing code.

The RAII idiom is useful when writing exception-safe code, but also simplifies resource cleanup when control flow gets complicated. The C++ Standard Library class template std::auto_ptr<> is another implementation of this same idiom written to manage the cleanup of a heap-allocated object.

The basic concept is to acquire a resource in the constructor, and to leverage the C++ language's guarantee that the destructor of a successfully-constructed object will be called.

Using the RAII idiom, the program performs an action when control flow leaves the current scope. Typically, the action to be performed is to undo a previous action in the event that an exception occurs.

Table 23 lists classes and functions in this group.

Table 23: Scope guard classes

Class Description
RWScopeGuard Typedef for RWScopeGuardImp.
RWTRefHolder Reference wrapper object used with scope guards.
RWScopeGuardImp This class and its derived classes implement the scope guard.


Previous fileTop of DocumentContentsNo linkNext file

Copyright © Rogue Wave Software, Inc. All Rights Reserved.

The Rogue Wave name and logo, and SourcePro, are registered trademarks of Rogue Wave Software. All other trademarks are the property of their respective owners.
Provide feedback to Rogue Wave about its documentation.