![]()
December 2005
Volume 23 Number 12FEATURES
Unit Testing & CxxTest
Eric Gufford
Unit testing can save you time and catch bugs early in the development cycle, but it can be tedious to set up. CxxTest is a framework that uses Perl to automate the creation of test classes for your application.Compile-Time Assertions & Debugging
Klaus Wittlich
It's common practice to use assertions to check invariants at run time, but assertions can be equally useful at compile time for doing things like checking arrays for proper size and order.A Flexible Framework for Error Reporting
Terence Parker
Errors often occur deep in a class or subroutine, but the way you present that error should ideally be dependent on context. The solution is to separate error generation from error reporting.Mixed-Language Programming & External Linkage
Giri Mandalika
Calling C code from C++ should be relatively straightforward, but understanding the concept of linkage is key to ensuring a smooth compile.Adapting Interface-Incomplete Types at Compile Time
Matthew Wilson
When an adapter template makes demands that a potential underlying type cannot fulfill, Inferred Interface Adaptation can expand the number of adaptable types.Hierarchical State Machine Design in C++
Dmitry Babitsky
In a Hierarchical Finite State Machine, any state can be a substate of some larger state. Dmitry presents a class that implements this pattern.GraphViz and C++
Nikos Platis and MihalisTsoukalos
The Boost Graph Library (BGL) is a great way to use GraphViz to draw directed and undirected graphs of your data structures.C++/CLI Input/Output
Rex Jaeschke
Rex covers the ABCs of reading and writing in the .NET/CLI realm, including screen and keyboard I/O, file and string I/O, random-access I/O, and operations on files and directories.COLUMNS
Generic<Programming>
Andrei Alexandrescu
The way your application allocates memory can have a dramatic effect on its performance. Modern general-purpose memory allocators are pretty efficient, but there's always room for improvement.C++ Made Easier
Andrew Koenig and Barbara E. Moo
Some programming abstractions seem like they can safely be violated. There are reasons, however, why you should think twice before doing soa little self-discipline can have big payoffs.The New C++
Pete Becker
The TR1 implementation of the Standard Template Library contains new data collections and callable types. To understand these, it's important to grasp some fundamentals of the design of the STL.DEPARTMENTS
Editor's Forum
New Products