The New C++----Herb Sutter !!!
The New C++
Herb Sutter
--------------------------------------------------------------------------------
Copyright 2002 Herb Sutter
These are heady times for C++. Active standardization was put on hold after the C++ Standard was published in 1998, to give us time to fix bugs and let compilers and libraries catch up. Now things are "hot" again, and a lot of exciting stuff is happening.
This new column is about precisely that "exciting stuff." Titled "The New C++," it focuses on the active work now under way to extend the C++ language (not much) and library (very much) now and in the next few years as we progress toward "version 2.0" of the C++ Standard.
There's a lot to cover, and this is where you'll find the most up-to-date coverage. Some of us have already written a bit about the new C++ in other fora: for more overview information about where we're at and what (and why) exciting things are now happening, see the two complementary columns by me and Matt Austern in the January 2002 issue of CUJ [1, 2]. They contain some basic information about what's going on, who's going on about it, and — perhaps most importantly of all — how you can participate and how it affects your work today and in the short term, not just years down the road.
A Roadmap
In this, the first installment of "The New C++," I am going to start with a complementary bird's-eye roadmap of where we've been and where we're going, and then I'm going to devote most of this introductory column to just that — introductions, of people and groups and terms, a "who's who" and "glossary" to the C++ standardization process. In future columns, I'll describe in more technical detail some of the key facilities being considered, how they work, and what issues come up as they're debated in committee and between meetings on the committee email reflectors.
Figure 1 shows the major pieces influencing the development of the C++ Standard, both in leading up to C++98's publication in 1998 and C++0x's publication at some future time. This picture should give you a useful roadmap of how various items work and connect, and what leads to what else at about what time. The rest of this column defines the terms used in Figure 1. And for now, I won't say much more than that, but I do hasten to point out one thing in particular: Boost is by no means the only, or even necessarily the major, outside contribution to the Library TR (Technical Report); it just happens to be the most visible single group at this time.
Next Time
Because of publishing lead times, even on the Web, I expect to finish writing two more installments of this column before the next C++ standards meeting in April 2002. Next time: a survey of the first batch of suggested library extensions considered at the October 2001 WG21/J16 meeting in Redmond, Washington, USA. The next time after that: a closer look at one of the proposed facilities. Stay tuned.
References
[1] Herb Sutter. "Sutter's Mill: Toward a Standard C++0x Library, Part 1," C/C++ Users Journal, January 2002.
[2] Matt Austern. "The Standard Librarian: And Now for Something Completely Different," C/C++ Users Journal, January 2002, <www.cuj.com/experts/2001/austern.htm>.
[3] The official WG21 website is at <http://std.dkuug.dk/jtc1/sc22/wg21/>.
[4] Margaret Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual (Addison-Wesley, 1989).
About the Author
Herb Sutter is an independent consultant and secretary of the ISO/ANSI C++ standards committee. He is also one of the instructors of The C++ Seminar (www.gotw.ca/cpp_seminar). Herb can be reached at hsutter@acm.org.