{logo}

March 2002
Volume 20 Number 3

LINUX

Binary Code Reuse in a Linux Environment

John F. Hubbard
Traditional Unix-like filters meet C++ in these useful classes for launching and controlling processes in Linux.

Widgets in Gtk+

Syd Logan
A detailed How-To for using and extending GNOME’s developer toolkit.

Writing KDE Applications

Jason Mott
The Linux desktop is maturing on schedule. Here’s a look at developing event-driven GUI apps in KDE.

FEATURES

A Technique for Efficient Logging and Monitoring of Real-Time Systems

Bill Pyritz
An ingenious approach to tracing execution using ideas from Aspect-Oriented Programming that leaves your code as clean as can be.

C++ Algorithms: next_permutation

Mark Nelson
On the elegance of next_permutation, which might even help you with your homework, by the way.

C/C++ CONTRIBUTING EDITORS

The New C: VLAs, Part 4: VLA typedefs and Flexible Array Members

Randy Meyers
The Rest of the Story on variable-length arrays in C99. Yes, they’re well-behaved and very flexible, but use them with caution.

Uncaught Exceptions: Space-Time Discontinuum

Bobby Schmidt
“Namelessspace?” How about Lost in Space? You decide, Gentle Reader.

The Standard Librarian: Complex Numbers

Matt Austern
While complex numbers are simple in theory, it should be no surprise that in practice, they’re well, complex.

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:

“Conversations: Template Specializations, Default Parameters, and Other Fun Stuff”

by Jim Hyslop and Herb Sutter
Many people know how to partially specialize a template. But what happens when the base template has a template parameter with a default value? The answer may not be quite what Bob expected.

“The (B)Leading Edge: Building an Indexed File Class Using XDR_Stream”

by Jack W. Reeves
This month Jack uses the XDRStreams that he has developed in previous columns as the basis for an IndexedFile class.

“Object Interconnections: Real-time CORBA, Part 3: Thread Pools and Synchronizers”

by Douglas C. Schmidt and Steve Vinoski
Distributed real-time and embedded applications need strict control over the scheduling and execution of CPU and memory resources. This column describes Real-time CORBA’s support for these needs, focusing on its thread pools and synchronizers.