The Casting Vote
by Sean A. Corfield

This column normally appears in Overload, reporting on the machinations of the joint ANSI/ISO C++ committee. Overload 5 carried the report of the March `94 meeting but since Overload 6 is unlikely to appear before the November `94 meeting, Francis has agreed to take this report of the July '94 meeting. Accordingly I shall be briefer than usual for the sake of the sanity of those of you who are not entirely fascinated by the C++ standardisation process...

In some ways, not much actually happened in Kitchener, Ontario in July. That is, we (the committee) did not muck about with the language in any major ways. We tweaked some of the semantics, clarifying and removing minor parts as necessary to make C++ more consistent. Two very major events occurred which are worthy of comment: STL and CDR.

STL - The Standard Template Library

Alex Stepanov & Meng Lee of Hewlett-Packard have presented talks at previous committee meetings outlining their generic algorithms and containers that make heavy use of templates. A formal proposal was finally put on the table in July to incorporate their work into the draft ISO C++ standard library. Since the proposal ran to 65 pages, this was fairly controversial with Germany in particular having concerns about incorporating such a large body of material at such a critical point in the standardisation process (more of which later). However, STL provided an answer to one of the UK'S primary concerns: lack of a consistent library framework. As it happened there was not much resistance in the end and the committee voted to adopt HP's template-based containers and algorithms.

STL itself is a comprehensive and extremely consistent set of algorithms covering sorting, searching, lists, vectors, sets, associative arrays and so on. Many committee members left the meeting fired with enthusiasm for writing their own version as it was unclear whether HP would release theirs into the public domain. Recently, they did just that and those of you who get Overload will have received a disk containing a version of STL that works with Borland C++ 4.0. Several companies have also produced free or cheap commercial versions so you can expect to be using STL extensively before long (compiler permitting). I too have written a version of STL for the Mac (under Symantec C++), and I shall write an in-depth article on it shortly (for C VU or Overload as the editors see fit).

CDR - Committee Draft Registration

This is the "critical point" referred to above. The standardisation process works in roughly these stages:

1) Committee form and work for some time on a Working Paper describing the language.

2) When the Working Paper is `complete' the committee hand it over as a Working Draft to the next committee up the chain who take a ballot on whether the document should be registered as a Committee Draft (hence CDR Ballot).

3) After the ballot, the committee incorporate all the comments made and continue improving the, now, Committee Draft until it is ready to submit to the parent committee again for a ballot on whether to accept the Committee Draft as a Draft International Standard.

4) Again, the committee incorporate all the comments and then submit the DIS to the top of the tree (JTC1 - Joint Technical Committee 1) for approval as an International Standard.

5) Final comments are incorporated and the International Standard is published.

Well the joint ANSI/ISO C++ committee has now entered stage 2) which means that if all goes well, we should complete stage 5) early in 1997. The committee decision was not unanimous with UK, Australia and New Zealand voting against submitting the Working Draft for various reasons of consistency and completeness but the real test comes over the next few months as the CDR Ballot is conducted by the international SC22 committee.

What does this mean for C++ programmers?

Since it is theoretically more difficult to make major changes to the language or library the further the draft progresses through the ballots, it should mean that compiler vendors (and tool vendors) get a chance to catch up with the draft. This should mean better implementations of templates, exception handling and run-time type identification, introduction of namespaces and more cross-platform portability of source code. Something for we should all be thankful.

The Future

The BSI C++ panel continues to meet to discuss issues and review the Working Draft with six meetings next year (Francis will publish dates, no doubt). The joint ANSI/ISO committee meets next in Valley Forge, PA in November. Next year sees three more meetings: March - Austin, TX; July - San Francisco, CA; November - Tokyo, Japan. Reports of those meetings will appear in Overload (probably).

As ever, I can be contacted by e-mail at sean_corfield__at__prqa.co.uk which is a minor change from my previously published address thanks to our new mail gateway!
Mirrored from http://www.accu.org/