C/C++ Users Journal January, 2005
I'm getting to know Redmond Town Center rather better than I'd like to admit. Not that it's a bad place, mind you. If you're going to visit Microsoft, or whatever else may be in the Redmond, WA vicinity, the Town Center is a reasonably nice oasis for the weary traveler. Within comfortable walking distance you've got your hotels, restaurants, assorted shops, a movie theatre, and the obligatory Starbucks. (Actually, there are two Starbuces within mortar range of each other, but that's hardly unusual these days.) There's even a pleasant riverside park at hand, for the dedicated walker, jogger, or cyclist.
Most of our recent visits to Redmond have been to attend ECMA TC39/TG5 meetings at Microsoft. As I've described previously, TG5 is the committee charged with developing a standard spec for C++/CLI, Microsoft's extensions to C++ for the .NET environment. But that was only part of the reason for our latest, and longest, sojourn. Microsoft just hosted two weeks of C and C++ Standards meetings, with a bit of C++/CLI sandwiched in the middle, and the whole Dinkumware crew attended some or all of those meetings.
ISO SC22/WG21 (C++) got to go first again. This committee does practically all of its work as three subcommittees. The Core Language subcommittee, headed by Steve Adamczyk of Edison Design Group, seems to be mostly chewing through Defect Reports to clarify the existing C++ Standard or fix inconsistencies in the language portion thereof. Evolution is run by Bjarne Stroustrup; it is busy exploring new features to be added to the next major revision of the C++ Standard (which is still several years out).
Finally, Matt Austern of Apple Computer runs the Library subcommittee, where I spend all my time. Yes, we process our share of Defect Reports, but that's not our principal business these days. We spent most of our time this session finalizing the first (nonnormative) library Technical Report. Also known as TR1, this document represents the most significant addition to the Standard C++ Library since the C++ Standard was approved in 1998. It includes numerous template metaprogramming aids, smart pointers, a sophisticated random number generator, a fistful of advanced math functions, a generalized tuple, an array template, hash tables, regular expressions, various iterator adaptors, and essentially everything added to the Standard C Library with C99. Yes, that's a lot of stuff to put in one grab bag, but it's all stuff that various groups have been asking for over the past several years. Look for the first full implementation of TR1 (ahem) in early 2005.
Those of us who insist on attending both the C and C++ meetings normally get the weekend off in between to rest up. But not this time. Tom Plum convened a TG5 meeting Friday afternoon and all day Saturday. The C++/CLI Standard was supposed to be completed in September, but that didn't quite happen. Now the committee is aiming to finish up and get the document approved by March 2005. No big showstoppers, just a lot of details to flesh out. Dinkumware attends these meetings primarily because we're developing STL.Net, the companion Standard Template Library for C++/CLI. We are perforce early adopters of C++/CLI, as it were, with a big stake in ensuring that you can write real code in this dialect. So far we can, but I'll breathe easier when both the language spec and the new VC++ compiler are a bit more frozen.
ISO SC22/WG14 (C) is rather smaller than C++. It's two dozen people sitting around a table working on a common agenda, rather than five dozen people spread through several rooms. Moreover, the C committee is pointedly not working on a revision of the C99 Standard, so there's way less "evolution" to discuss. We spent our time, as usual, processing a shrinking list of Defect Reports and a handful of nonnormative Technical Reports. We made a few small repairs to the Embedded TR that I described last month, and spent rather more time on the Secure Library TR that I described the month before. But we had no completions to announce at the end of this particular session. Maybe next time.
This brief summary can't begin to convey just how much hard work goes on at Standards meetings. The major output of each ISO committee is one large document about once a decade, which doesn't seem like all that much. But by the time you hammer out all the technical compromises and all the wording issues, then respond to feedback for a few years, you've made quite an investment. Some of us still think it's worth it, even if it also means leaving New England in prime leaf season for a fortnight in Redmond Town Center.
P.J. Plauger
Senior Contributing Editor
pjp@plauger.com