FROM THE PAGES
April 2000 Volume 12, No. 4
Exclusive Interview with Bjarne Stroustrup, the Father of C++
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 AddisonWesley'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.
Traits: The else-if-then of Types
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().
THE STANDARD LIBRARIAN
Why You Shouldn't Use setand What to Use Instead
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.
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.
VIEW FROM THE CHAIR
ISO C++ as of January 2000
Efficient C++: Performance Programming Techniques
Reviewed by George V. Reilly
Jim Hyslop and Herb Sutter