Doc No: SC22/WG21/N1459 J16/03-0042 Date: April 25, 2003 Project: JTC1.22.32 Reply to: Robert Klarer IBM Canada, Ltd. klarer@ca.ibm.com
Plauger had a concern that the discussion of export would be held during an evening technical session (agenda item 4.1, "Why We Can't Afford Export"), as the issue is too important to be discussed during an evening session.
Clamage assured Plauger that no votes would be taken during the evening session, and that the session would consist only of technical discussion.
Plauger stressed the importance of this issue, not only from a technical point of view, but from the point of view of process and procedure.
Plum suggested that some committee time during the day be devoted to the discussion of process and procedure.
Clamage observed that time could be allotted from the schedule on Thursday.
Discussion followed concerning the time on Thursday during which this session would be held.
Clamage concluded that this session would be held from 1:30pm to 3:30pm on Thursday.
Evening technical sessions:
Clamage indicated that the evening technical sessions will begin at 7:30pm on Monday and Tuesday.
Motion to approve the agenda as amended:
Mover: Plum
Seconder: Dawes
WG | favor | oppose | abstain |
J16 | 15 | 0 | 0 |
Adamczyk mentioned that the Core Working Group (CWG) had intended to discuss issues that were of interest to members of other working groups. The various Working Group chairs will meet to agree on arrangements so that interested parties may participate.
Austern reported that the Library Working Group (LWG) would continue its work of processing DRs and discussing proposals for inclusion in the TR.
Goldthwaite reported that the vote to register the Performance TR has been approved.
Stroustrup suggested that the Evolution Working Group (EWG) needed to establish an issues list and to establish an overall direction for the evolution of the language. Stroustrup intended to begin by emphasizing proposals that sought to "remove embarassments" and proposals that will facilitate the construction of libraries.
WG | favor | oppose | abstain |
J16 | 15 | 0 | 0 |
Sutter also reported that there was discussion in the WG21 meeting about the need for a base document for the C++0x effort. It was proposed that TC1 (document number 14882:2003(E) ) be used for this purpose.
Adamczyk expressed concern about the proposed new working paper. His specific comments were:
Adamczyk asked whether there would be a TC2.
Glassborow suggested that we should agree that there will be no TC2, and that we will begin work on a revised standard.
After some discussion, there was concensus that the base document for the C++0x effort will be equivalent to 14882:2003(E) with all DRs applied. It was agreed that this decision would be moved for formal voting during the Friday session. There was tacit agreement that there will be no TC2 in the form of a revised standard.
Sutter reviewed the schedule for future meetings:
Plum reported that nine members of WG14 at the meeting were liaisons from C++ to C.
Plum took a count of liaisons from C to C++ among WG21 members at this meeting. Plum counted 8 liaisons.
Plum reviewed the 16-bit and 32-bit character types that were approved for C.
T. Plauger reviewed document N996, the embedded C TR, and document N998, concerning extended character types.
Sutter reported that Martyn Lovell's paper 997 on C library security was presented to WG14.
A similar paper will be presented to WG21 in the Monday night technical session.
The committee broke into subgroups at 10:30am.
Adamczyk reported that most of the CWG's time was devoted to DR processing. All items in Ready state except one will be proposed for integration into the Working Paper. One issue requested a relaxation of the rules for the placement of the typename keyword. CWG has decided in principle to permit typename to be used with qualified names in any context, even outside of templates. The requester, P J Plauger has requested that typename be permitted on any name that is a type, including both qualified names and unqualified names.
Plauger reviewed his request for the group.
Crowl claimed that syntactical ambiguities would arise if typename could be applied to unqualified names.
Spicer suggested that these ambiguities already exist.
Austern asked whether this proposal would allow a programmer to disambiguate code in ways that are not possible today. The consensus opinion of the group was that the answer to Austern's question was "no."
Adamczyk reviewed Core Issue 339 concerning the use of an arbitrary expression as an operand to a sizeof expression that is used as a template parameter. Template argument deduction does not currently work in this sort of case in most C++ compilers. To make this work compilers may need to make ABI changes. Adamczyk invited the group to express opinions to him about whether this sort of deduction should work, and -- more specifically -- in which cases it should or should not work.
example:
extern "C" int printf(const char *, ...); char f(int); int f(...); // Approach 1 -- overload resolution in template class // No problem template <class T> struct conv_int { static const bool value = (sizeof(f(T())) == 1); }; // Approach 2 -- overload resolution in type deduction // Difficult template <int I> struct A { static const int value = I; }; template <class T> bool conv_int2(A<sizeof(f(T()))> p) { return p.value == 1; } int main() { printf("short: %d\n", conv_int<short>::value); printf("int *: %d\n", conv_int<int *>::value); printf("short: %d\n", conv_int2<short>()); printf("int *: %d\n", conv_int2<int *>()); }Evolution Working Group progress:
Stroustrup reported that the EWG will not be bringing forward any formal motions at this meeting.
Some specific proposals that had been discussed by EWG included:
Austern asked whether C committee was approached concerning ideas about changing the preprocessor.
Stroustrup answered: not yet. We need to develop the idea further and to write a paper.
Stroustrup also recalled that Vandevoorde hosted an information session in which he presented his C++ metaprogramming project
Library Working Group progress:
Austern reported that the LWG spent most of the week reviewing proposals to the Library TR, and that many proposals have been accepted in principle by the LWG for inclusion in the TR.
Austern also noted that some LWG issues in Ready Status will be moved for approval as DRs.
Austern reviewed two TR proposals that were controversial among the members of the LWG: N1422/03-0004 "A Proposal to Add Mathematical Special Functions to the C++ Standard Library" and N1443/03-0025 "A Proposal to Add Hash Tables to the Standard Library."
Mathematical Special Functions:
Austern reported that concerns expressed among the LWG about the proposal for mathematical special functions were that these functions are suitable for C, so work on them should be coordinated with the C committee. Also, this library is very large and complicated and the proposal may be controversial for that reason.
Discussion followed concerning the suitability of a special purpose library such as this one for inclusion in the TR.
Some points made during this long discussion:
A straw poll was taken, and expressed opinion among the group was that this proposal should be moved for inclusion in the TR on Friday.
Hash Tables:
Austern reviewed the LWG discussion about the names of the containers proposed in "A Proposal to Add Hash Tables to the Standard Library." Specifically, there had been concern that confusion and incompatibility would result if the names hash_set, hash_multiset, hash_map, and hash_multimap were used, since these names are already commonly used for similar -- but slightly different -- nonstandard containers. A revision of the proposal (document N1456) reflects the outcome of this discussion; the names of the proposed containers have changed from hash_set, hash_multiset, hash_map, and hash_multimap, to unordered_set, unordered_multiset, unordered_map, and unordered_multimap, respectively.
Discussion about these names followed.
Dawes reviewed some of the alternatives that were considered by the LWG:
In a straw poll, it was found that there was strong support for a motion to approve this proposal for inclusion in the TR.
Austern reviewed the LWG discussion of the equality operator for the unordered containers.
Performance Working Group progress:
Goldthwaite reported that editorial work on the Performance TR continued. In particular, a great deal of work was devoted to the integration of changes into the document which originated from the C committee's parallel document. The TR is now very close to completion.
Alternative | Straw Votes |
---|---|
Remove export | 8 |
Leave in export | 28 |
Discuss more | 7 |
No more discussion | 30 |
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
Move to adopt ISO/IEC 14882:2003(E) as the working paper.
Mover: Charney
Seconder: Nelson
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Move to amend the working paper by applying all issues whose
status is DR from N1434, "C++ Standard Core Language Defect
Reports, Revision 25".
Mover: Adamczyk
Seconder: Sutter
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Move to amend the working paper by applying all issues whose status is DR from N1441, "C++ Standard Library Closed Issues List Revision 25".
Mover: Austern
Seconder: Charney
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Move to ask SC22 to make the performance TR available for free, or to authorize WG21 to make it available for free.
Mover: Glassborow
Seconder: Charney
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Move to direct the project editor of the performance TR to make changes of an editorial scope, such as reconciling it with the WG14 technical report WD TR 18037, fixing typographical errors, and fixing incorrect code examples.
Mover: Glassborow
Seconder: Charney
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Move to accept N1452, "A Proposal to Add an Extensible Random Number Facility to the Standard Library", for inclusion in the library extensions technical report.
Mover: Austern
Seconder: Glassborow
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Move to accept N1422, "A Proposal to Add Mathematical Special Functions to the C++ Standard Library", for inclusion in the library extensions technical report.
Mover: Austern
Seconder: Brown
WG | favor | oppose | abstain |
J16 | 14 | 4 | 1 |
WG21 | 4 | 1 | 4 |
The convenor ruled that the above result constituted concensus among the commitee to approve the motion. Some discussion ensued concerning the level of discomfort among some members of the committee about this motion.
Move to accept N1424, "A Proposal to add Type Traits to the Standard Library", for inclusion in the library extensions technical report.
Mover: Austern
Seconder: Hinnant
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Move to accept N1429, "A Proposal to add Regular Expression to the Standard Library", for inclusion in the library extensions technical report
Mover: Austern
Seconder: Dawes
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Move to accept N1450, "A Proposal to Add General Purpose Smart Pointers to the Library Technical Report", for inclusion in the library extensions technical report.
Mover: Austern
Seconder: Charney
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Move to accept N1432, "A Proposal to Add an Enhanced Member Pointer Adaptor to the Library Technical Report", for inclusion in the library extensions technical report.
Mover: Austern
Seconder: Dawes
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Move to accept N1453, "A proposal to add a reference wrapper to the standard library", for inclusion in the library extensions technical report.
Mover: Austern
Seconder: Abrahams
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Move to accept N1454, "A uniform method for computing function object return types", for inclusion in the library extensions technical report.
Mover: Austern
Seconder: Abrahams
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Move to accept N1455, "A Proposal to Add an Enhanced Binder to the Library Technical Report", for inclusion in the library extensions technical report.
Mover: Austern
Seconder: Marcus
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Move to accept N1456, "A Proposal to Add Hash Tables to the Standard Library (revision 4)", for inclusion in the library extensions technical report.
Mover: Austern
Seconder: Dawes
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Glassborow reported that he was uncomfortable with the names of the containers specified in this proposal, but that he felt that it made sense to try the name in a TR.
Hinnant reported that all of the names will likely be declared in a namespace named tr1 that is nested inside the nested namespace std.
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
There was agreement that issues that had been incorporated into the Working Paper would be assigned the status code WP.
Nelson moved to thank the host.
Applause.
Dawes moved to thank Maurer and those others who maintained web servers throughout the meeting.
Applause.
Glassborow suggested that guidelines be written for hosts of future meetings to simplify their work and to allow them to benefit from the experience of previous hosts.
Glassborow suggested that companies that were not willing to host meetings themselves take it upon themselves to help others to finance the cost of future meetings.
Plauger requested that an agenda item be created to deal with the issue concerning DLLs.
There was concensus that this could be worked out in private e-mail.
Motion to adjourn
Mover: Plauger
Seconder: Dawes
WG | favor | oppose | abstain |
J16 | 19 | 0 | 0 |
WG21 | 9 | 0 | 0 |
Meeting adjourned at 9:15.
Company/Organization | National Body | Representative | Mon | Tue | Wed | Thu | Fri |
---|---|---|---|---|---|---|---|
Adobe Systems | Mat Marcus | V | V | V | V | V | |
Apple Computer | US | Matthew Austern | V | V | V | V | V |
AT&T | Andrew Koenig | ||||||
AT&T | US | Bjarne Stroustrup | V | V | V | V | V |
Atlantic International | David Miller | V | V | V | V | V | |
Borland International | John Wiegley | ||||||
Charney & Day | Reg Charney | V | V | V | V | V | |
Dinkumware | P. J. Plauger | V | V | V | V | V | |
Dinkumware | Pete Becker | A | A | A | A | A | |
Dinkumware | US | Tana Plauger | A | A | A | A | A |
Edison Design Group | US | J. Stephen Adamczyk | V | V | V | V | V |
Edison Design Group | Daveed Vandevoorde | A | A | A | A | A | |
Edison Design Group | John H. Spicer | A | A | A | A | ||
Fermi Nat. Accelerator Lab | US | Walter E. Brown | V | V | V | V | V |
Fermi Nat. Accelerator Lab | US | Marc F. Paterno | A | A | A | A | A |
Gimpel Software | James Gimpel | A | A | A | |||
Hewlett-Packard | Kerch Holt | ||||||
Hewlett-Packard | Vikram Kumar | ||||||
IBM | CA | Robert Klarer | V | V | V | V | V |
IBM | CA | Sandor Mathe | A | A | A | A | A |
Indiana University | Jeremy Siek | V | V | V | V | V | |
Indiana University | Jaako Järvi | A | A | A | A | A | |
Intel | US | Clark Nelson | V | V | V | V | V |
Intel | Gyuszy Sütö | ||||||
Intel | Judy Ward | ||||||
Mathworks | William M. Miller | A | A | A | A | A | |
Mentor Graphics | Yenjo Han | ||||||
Metrowerks | Howard E. Hinnant | V | V | V | V | V | |
Metrowerks | Andreas Hommel | A | A | A | A | A | |
Microsoft | Jonathan Caves | V | V | V | V | V | |
Microsoft | CA | Herb Sutter | A | A | A | A | A |
Microsoft | Bobby Schmidt | ||||||
Microsoft | Brandon Bray | A | A | A | A | A | |
None - (Abrahams) | David Abrahams | V | V | V | V | V | |
None - (Dawes) | Beman G. Dawes | V | V | V | V | V | |
None - (Dawes) | US | William A. Seymour | |||||
Oracle | US | Gregory Colvin | V | V | V | V | V |
Perennial | Barry Hedquist | ||||||
Plum Hall | US | Thomas Plum | V | V | V | V | V |
Programming Research | Richard Corden | V | V | V | V | ||
Rational Software | Tom Wilcox | ||||||
Red Hat | Jason Merrill | V | V | V | V | V | |
Red Hat | Benjamin Kosnik | ||||||
Rogue Wave Software | Martin Sebor | ||||||
Silicon Graphics | John Wilkinson | ||||||
Sun Microsystems | Lawrence Crowl | V | V | V | V | V | |
Sun Microsystems | US | Stephen D. Clamage | A | A | A | A | A |
Tellabs Operations | Daniel Miller | ||||||
Utah Valley State College | Chuck Allison | ||||||
ACCU | UK | Francis W. Glassborow | N | N | N | N | N |
Amazon.com | Gary Powell | N | N | N | N | ||
CodeSourcery | Nathan Sidwell | N | N | N | N | ||
Crystal Clear Software | Jeff Garland | ||||||
DB Systems | Jens Maurer | N | N | N | N | N | |
ILOG FR | Georges Schumacher | N | N | N | N | N | |
INRIA FR | Gabriel Dos Reis | N | N | N | N | N | |
Logica CMG | NL | Michiel Salters | N | N | N | N | N |
Phaidros Software | Dietmar Kühl | N | N | N | N | N | |
Ramtex International | DK | Jan Kristoffersen | N | N | |||
RAP | NO | Keld Simonsen | |||||
RPI | Doug Gregor | N | N | N | N | ||
Tokyo University of Technology | JP | Ichiro Koshida | N | N | N | N | N |
Toshiba | JP | Seiji Hayashida | N | N | N | N | N |
Univ. of Coop Education | DE | Richard Kaiser | N | N | N | N | |
University of Hanover | Thomas Witt | N | N | N | N | ||
Vollmann Engineering | CH | Detlef Vollmann | N | N | N | N | N |
UK | James Dennett | ||||||
UK | Kevlin Henney | N | N | N | N | ||
UK | Lois Goldthwaite | N | N | N | N | N | |
Alisdair Meredith | N | N | |||||
Christopher Hill | N | N | N | N | N | ||
Daniel Gutson | N | N | N | N | |||
Thorsten Ottosen | N | ||||||
Microlise | UK | Alan Griffiths | N | N | N | ||
Deran Instruments | UK | Anthony Williams | N | ||||
twoNine Computer Service | UK | Mark Radford | N | N | N |