{logo}

February 2002
Volume 20 Number 2

EMBEDDED SYSTEMS

Probing the Palm OS

Trevor Harmon
You can develop Palm applications in most any host language. Here’s how to do so in C.

Implementing Interrupt Service Routines in C++

Bill Gatliff
Handling interrupts isn’t a job for only C or assembly language programmers. C++ can do the job with elegance and efficiency.

FEATURES

Extensible Templates: Via Inheritance or Traits?

Herb Sutter
Traits classes have become de rigueur in C++ template programming. Read this to find out why.

C/C++ Contributing Editors

STL & Generic Programming: Policy-Driven Design

Thomas Becker
If you had to struggle a bit on your first pass through Alexandrescu’s Modern C++ Design, let this gem serve as a gentler introduction to policy-based design in C++.

C++ Made Easier: Naming Unknown Types

Andrew Koenig & Barbara E. Moo
Sometimes you can finesse your way around hard problems with programming conventions. STL does. Why don’t you try it?

Common Knowledge: Output Iterator Adapters

Steve Dewhurst
Once again, uncommonly cogent wisdom — this time about output iterators, suitable for use by trolls and other serious programmers.

DEPARTMENTS

Editor’s Forum

New Products

We Have Mail

C++ EXPERTS ON THE WEB

In this, web-only component of CUJ, we continue publication of the columns that were popular in the former C++ Report magazine. The following articles are featured on the CUJ website this month:

“Generic<Programming>: Typelists and Applications”

by Andrei Alexandrescu
This month’s installment of “Generic<Programming>” reintroduces typelists, discusses alternatives for implementing typelist creation, and presents a concrete application of typelists in a real-world problem: visiting a hierarchy that wasn’t designed for visitation.

“Conversations: New Bases, Part 2”

by Jim Hyslop and Herb Sutter
Basic reading and writing from a standard stream sounds simple, but can harbor its share of little complexities. Here is a simple example, with notes about the kinds of complexity that can usually be deferred.

“From Mechanism to Method: The Safe Stacking of Cats”

by Kevlin Henney
What can you do with a cat? Many things, perhaps the most surprising of which (not least to the cat) is to stack it. However, not all attempts at cat stacking are successful. This column explores the safety aspect of such antics in C++: What are the levels of exception safety that we can assume? By what means can we achieve exception safety? What are the five different approaches to cat stacking? What are their relative merits and drawbacks?

“The Standard Librarian: Containers of Incomplete Types”

by Matt Austern
Unlike most of my columns, this one is about something you can’t do with the C++ Standard library: put incomplete types in one of the standard containers. This column explains why you might want to do this, why the standardization committee banned it even though they knew it was useful, and what you might be able to do to get around the restriction.

“The New C++”

by Herb Sutter
A new C++ Standard library and language are now in the making. This is a fitting time to introduce “The New C++,” a new column dedicated to keeping you up-to-date with the latest status of the coming brand-new release of the C++ Standard.