FROM THE PAGES

April 2000 Volume 12, No. 4

FEATURES

Exclusive Interview with Bjarne Stroustrup, the Father of C++
Saba Zamir
Bjarne Stroustrup discusses the importance of the International Standardization effort for C++ and the upcoming Technical Corrigendum in October. Considering C++ a successful vehicle for the innovative use of programming and design techniques, Stroustrup offers his reasons for favorably comparing C++ to Java, responds to the criticisms of C++ relating to memory management and exception handling, and advises on program design and development.

streambuf: The Stream Buffer Classes
Angelika Langer and Klaus Kreft
This is a longer version of the excerpt from Addison–Wesley's soon-to-be-published Standard C++ IOStreams and Locales that appeared in the print issue. In addition to string stream buffers, file stream buffers are discussed.

COLUMNS

NEW
GENERIC<PROGRAMMING>
Traits: The else-if-then of Types

Andrei Alexandrescu
What are traits, and why do people keep referring to them as an important technique for generic programming in C++? Traits are important because they allow making compile-time decisions based on types. Alexandrescu shows how traits lead us to create code that's cleaner, more readable, and easier to maintain.

STANDARD C++ PROGRAMMING
Generic Programming Fundamentals

JosÈe Lajoie and Stanley Lippman
Sometimes, trying to understand a writer or artist (or programmer's) finished design can be intimidating: It is difficult to get one's arms around the complexity, and one feels both a sense of diminishment and wonder. Lajoie and Lippman step through a series of functional iterations leading to the design of filter().

NEW
THE STANDARD LIBRARIAN
Why You Shouldn't Use set—and What to Use Instead

Matt Austern
Everything in the Standard C++ library is there for a reason, but it isn't always obvious what that reason is. Sometimes it makes sense to use set, but not as often as you might think. The standard library provides other tools for storing and looking up data, and often you can do just as well with a simpler, smaller, faster data structure.

OBJECT INTERCONNECTIONS
The OMG CORBA Messaging QoS Framework: An Overview

Douglas C. Schmidt and Steve Vinoski
Schmidt and Vinoski finish their series covering the OMG CORBA Messaging specification by highlighting the quality of service (QoS) framework supplied by the OMG Messaging specification and explaining where and how applications can use these policies.

EFFECTIVE STANDARD C++ LIBRARY
Implementing Manipulators With and Without Parameters in the Standard IOStreams

Klaus Kreft and Angelika Langer
Here's a look at another category of abstractions related to IOStreams: manipulators. Kreft and Langer explain how manipulators without parameters can be implemented, as well as providing a straightforward technique that allows the implementation of manipulators with parameters.

DEPARTMENTS

EDITOR'S CORNER
Herb Sutter

NEW
VIEW FROM THE CHAIR

Thomas Plum
ISO C++ as of January 2000

NEW
CONFERENCE PLANNER

AD INDEX

BOOK REVIEW
Efficient C++: Performance Programming Techniques

Reviewed by George V. Reilly

NEW
CONVERSATIONS
Re-membering auto_ptr

Jim Hyslop and Herb Sutter

OBFUSCATED C++
Rob Murray