May CRO Columns

NEW!
FROM MECHANISM TO METHOD
Substitutability

Kevlin Henney
Substitutability provides a useful way to structure the meaning of a system. It can be recognized as reaching further than a commonplace recommendation for inheritance, drawing together many C++ features in a set of practices that make sense of mechanism.

(B)LEADING EDGE
Object-Oriented Design and C++

Jack W. Reeves
Good software design matters, and object-oriented (OO) design is the best design method in use today. Reeves deliberates on his definition of OO design and shows how seamlessly C++ allows you to use many different design strategies within one programming language.

NEW!
COMMON KNOWLEDGE
Don't Ask, Don't Tell
Stephen C. Dewhurst
Runtime type information is an issue of current importance in object-oriented design. The C++ Standard has standardized the form of runtime type queries Runtime type queries are sometimes necessary or preferable to other design choices. Dewhurst explains, however, that legitimate uses of runtime type queries should be rare and almost never form the basis for a design.

TRAPS & PITFALLS
A Useful Optimization and Its Consequences

Andrew Koenig
Have you ever tried to compile a program and gotten a diagnostic message that didn't seem to give you a clue as to what you did wrong? Koenig explains several misleading diagnostic messages and the optimization that gives rise to them.

THE STANDARD LIBRARIAN
How to Do Case-Insensitive String Comparison

Matt Austern
Chances are you've needed to treat two strings that differ only by case as if they were identical—one of the most frequently asked questions about the Standard C++ Library is how to make strings case insensitive. Austern explores the answer in this month's column.

COLUMN WITHOUT A NAME
That's All, Folks

James O. Coplien
Coplien compares Alexander's aspirations for patterns with typical citations from contemporary practice, and points out the incongruity in value systems between the computer-science-oriented pattern community and what Alexander intended.