{logo}

September 2003
Volume 21 Number 9

Open Source

Writing Portable Applications with APR

Ryan Bloom
A truly portable C runtime available right now.

A 3D Stereo Movie Viewer with GLUT

Chris Moth
Experience the joy of portable, open-source graphics.

FEATURES

The Spirit Parser Library: Inline Parsing in C++

Joel de Guzman and Dan Nuffer
Powerful parsing made easy via modern template techniques.

The Same STL Algorithms — Only Better

Vladimir Batov
Cleaner iteration with a better for_each.

SPECIAL ECLIPSE SECTION

Creating an Eclipse Plug-in

Gene Sally
An introduction to the Eclipse environment and a study in how to build your own Eclipse plug-in.

Introducing CDT

Pawel Leszek
Getting started with CDT -- a C/C++ IDE built with Eclipse technology.

Eclipse: A Devloper's Story

Mary Kroening
A case study showing Eclipse at work on a real project.

CONTRIBUTING EDITORS

Conversations — From C++ to Shining C

Jim Hyslop and Herb Sutter
See your way to handily exposing C++ objects to C.

The New C — The 20th Anniversary of the C Standards Committee

Randy Meyers and Dr. Thomas Plum
Moore's Law and then some -- how far we've come!

DEPARTMENTS

Editor's Forum

New Products

C++ EXPERTS ON THE WEB

Sutter's Mill — Generalizing Observer

by Herb Sutter
The function facility, recently adopted by the C++ standards committee, provides a generalized way of working with arbitrary functions when all you know (or need to know) is their approximate signature. It turns out that this facility enables us to write, among other things, generalized implementations of important design patterns like Observer. Those generalized design patterns, in turn, motivate two small but important extensions to function itself.

Flexible C++ — Efficient Integer to String Conversions, Part 2

by Matthew Wilson
In this inaugural installment of a new Experts series, Matthew Wilson presents a fast and useful technique for converting integers to strings.

I/O System: dynamic_any Campaign

by Alexander Nasonov
The dynamic_any library, which is currently under review for inclusion with Boost, lets you manipulate objects of unknown type through interfaces discovered by runtime type indentification.