When I look at the recent C++ compiler offerings from companies such as Microsoft, Borland, and Symantec, the first thing I notice is the development environment. Somehow, I feel a bit like the pilot of a Cessna 182 who has wandered into the cockpit of a Boeing 767. Some things look vaguely familiar, but most of the console is a blur of knobs and switches. Give me an editor and a make utility any day. Oh, I need a resource compiler, too. That's it. That's all I need. And a debugger. A C++ compiler, a make utility, an editor, a resource compiler, and a debugger. That's all I need. And a profiler. Okay, a faster linker might be nice, too--and that class browser does look pretty cool. Hey, wouldn't it be great if I could just drag some knobs and switches and drop them on the screen. Then, I could junk that old editor and get something with syntax-directed highlighting.
Still, for all of the sparkle and flash of integrated-development environments, the real tool is (and will be) the language. That the C++ language is going through a public review should not go unnoticed. Working group WG-21 of the ISO SC-22 committee and ANSI's X3J16 committee have made the draft C++ standard generally available for public review. The committees are soliciting comments on the clarity and completeness of the document in its description of the standard. This is a necessary step in the adoption process. However, they are not looking for major rewrites. Rather, the committees are looking for comments that would polish the description of the language and its standard libraries.
Strangely, the committees seem to be forging ahead at speeds uncharacteristic of a standards body. One indication of this is the short review period. Although the working paper was released on May 1 (actually, "two hours remained in the month of April in the time zone of the first FTP site," said Andrew Koenig), the C++ community has until mid-July to make comments. To make matters worse, the document is some 720 pages, and it makes for anything but light reading--even Evelyn Wood might find it difficult to get through in a weekend.
It's the WG-21 committee's position that you've had five years to make suggestions on the standard. According to Bjarne Stroustrup, "a public review is primarily an exercise for language lawyers." At this point, the committee has no intention of redesigning the language. Items that stand little chance of being accepted, says Stroustrup, include banning the preprocessor, requiring automatic garbage collection, and adding a persistence library.
Even if you've missed the opportunity to provide comments, you may still find the draft interesting. It is available via anonymous ftp at research.att.com in the dist/C++/WP directory. You'll also find some interesting discussions of the standard taking place in the comp.std.c++ newsgroup. If you would like to make an official comment, you can get the procedures for doing so by sending e-mail to [email protected].
Speaking of standard C++ libraries, this issue of Dr. Dobb's Sourcebook provides some useful techniques for programming with the Standard Template Library, which was adopted by the standards committees late last year. As Rogue Wave founder Tom Keffer points out, the STL is not particularly object oriented. However, it provides trade-offs in terms of flexibility. This issue also provides three class libraries you should find useful. For instance, Todd Esposito and Andrew Johnson present a generalized parsing engine that can be used to parse anything from command lines to your WIN.INI file. Michael Yam provides a C++ framework that abstracts DCE's pthreads, and William Hill takes a close look at associative arrays in C++. These libraries were developed in the context of real-world projects and are currently being used in the development of serious applications.
Now you have something to do with all of those knobs and switches.
Michael Floyd
executive editor
Copyright © 1995, Dr. Dobb's Journal