GION is a collection of lightweight, simple, yet useful smart resource handles with std::auto_ptr like syntax and semantics.
Featuring smart handles for commonly used standard handle types, including:
file descriptors, FILE pointers, sockets
And platform dependent handle types:
WIN32 handles Pthread handles
These smart handles classes are instances of the auto_handle class template (link). It is designed with extensibility in mind, adding support of new types of handle is done by defining additional HandleTraits, which is quite trivial.
It also contains a nice little addition, the long missed class template - auto_array.
These smart handles greatly simplify daily programming tasks. Functions using them automatically provides basic guarantee in exception safety, and are free to return early without worrying about deallocation of resources allocated locally, a great way to avoid goto statements. See manual for example.
GION uses CMake as its build system, which is capable of generating platform specific Makefiles and MSVC project/solution files.
GION should build and function correctly with any recent C++ compiler, however, I’ve only built/tested it with GCC 4.2.3 and MSVC 2005. Pre-built WIN32 Debug/Release libraries are available here.