Home C++ articles Java articles Agile articles Bridge lessons
Grappling with C++
Review of the issues of using C++ as a development language
Achieving FitNesse in C++
Introduction to using FitNesse in C++.
Compile Time Indirection
An unusual use of templates to support implementation hiding.
Ending with the grin
Describes a smart pointer (part of arglib) that provides support for the Cheshire Cat (a.k.a. pimpl) idiom.
"Uncounted pointers"
Describes a smart pointer (part of arglib) that provides support strong and weak reference counting.
Here be Dragons
For many developers C++ exception handling is like a Dark Continent with poor maps and rumours of ferocious beasts. Take a safari with me. (This is an update to the "Writing Exception Safe C++" presentation below in article form.) An early version of this article was published in EXEDec. 1999
Writing Exception Safe C++
What is "exception safe C++"? How to write "exception safe C++"? Starting with insights drawn from a false trail that many of us explored (and abandoned) after first learning about C++ exception handling guidelines are developed. These leads to the development of a paradigm for writing exception safe code and the conclusion that "writing exception safe C++ isn't hard!" Presented at JaCC 1999
Using multiple frameworks
In an application that is using more than one framework there are occasions when it is desirable for a single object to perform a role in two (or more) frameworks. (Code in C++ and Java) Published EXEJune 1999
Implementation hiding in C++
Notes on the reasons for, and idioms for designing classes whose implementation may change without updating the public header files.
Dependency inversion
Notes on design techniques that allow low level software in a layered system architecture to access services that are implemeted in higer levels.


This is a C++ library containing a variety of useful code. Some of this was written as examples to support the articles "Uncounted pointers"and "Ending with the grin". Others parts were written as "proof of concept" or as "doodles in code".

It is provided "as is" without any guarantees except my good intent.

There are also tutorial articles discussing the rationale and usage of the various library elements. It is a "work in progress": enhancement and additional articles will be posted as and when I get around to it.

All the code has been compiled and tested with egcs-1.1.2, gcc 2.95.2 Visual C++ 5.0 Visual C++ 6.0 and Borland C++ 5.5 on WinNT4/Intel and with gcc 2.95.2 on Solaris7/Sparc.

more details  download arglib.