{logo}

March 2001
Volume 19 Number 3

LINUX

Open Source IDEs for Linux/Unix

Petr Sorfa
You don’t have to give up a graphical environment to develop software under Linux. There are as many IDEs freely available on the Internet as there are definitions of the word “free.”

Navigating Linux Source Code

James Bonang
With legacy code or large projects, navigation is a serious concern. Here are some tools that can help you find your way.

FEATURES

Documenting the Graphic Import Filter Interface

Bret S. Pehrson
There is a fairly ‘‘standard’’ interface for importing diverse graphics formats into Windows applications. Only problem is, nobody bothered to document it — until now.

Using Template Functions to Customize Library Behavior

Michael B. Yoder
If you’re writing code to be used by other programmers, you’ll want to make it customizable, and you’ll want to do it well. This article presents an approach that is both efficient and easy to manage.

Here Be Dragons

Alan Griffiths
If learning exception safety may be likened to a journey, then Alan Griffiths is an excellent tour guide. He shows us several alternate routes, and he always keeps the trip interesting.

BOOK REVIEWS

The C++ Standard Library: A Tutorial and Reference

reviewed by Ben Forshaw
Using the standard library is an essential part of C++ programming. Here’s a good book to get you started, and it makes a nice reference too.

Core C++ — A Software Engineering Approach

reviewed by Stephan Kämper
A book that teaches C++ in the context of Software Engineering.

C/C++ CONTRIBUTING EDITORS

Sutter’s Mill: To New, Perchance To Throw (Part 1 of 2)

Herb Sutter
If you’re going to overload operator new, make sure you get the right one, and that the compiler picks the right ones as well.

The Standard Librarian: Streambufs and Streambuf Iterators

Matt Austern
If you’ve ever used getc and putc, you need the C++ equivalents that reside in streambufs.

Uncaught Exceptions: An Alan Smithee Film

Bobby Schmidt
Of mutability, volatility, portability, and other things that go bump in the night...

Post-Mortem Debunker: Reply ALL

Stan Kelly-Bootle
Somebody let Stan off the plane in New Orleans, ostensibly to cover a Unix conference. Here is his report, complete with a bit of (ahem) cultural commentary.

C++ EXPERTS ON THE WEB

In this new, 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: Redirections"

by Jim Hyslop and Herb Sutter
Redirecting C++ stream output requires more than a simple assignment — but not much more. Here’s another tale that shows the power of the C++ I/O library.

"The (B)Leading Edge: Using IOStreams, Part 2"

by Jack Reeves
Jack shows how to use the little-known iword/pword facility of IOStreams to enable custom formatted output of user-defined classes.

"From Mechanism to Method: Total Ellipse"

by Kevlin Henney
Good class design is about separation of concerns, and making classes mutable complicates the task considerably. Kevlin uses the traditional taxonomy of shapes to demonstrate that changeability changes everything.

DEPARTMENTS

Editor’s Forum

New Products

We Have Mail