Doc No: SC22/WG21/N1915 J16/05-0175 Date: 2005-10-03 Project: JTC1.22.32 Reply to: Robert Klarer IBM Canada, Ltd. [email protected]

Minutes of J16 Meeting No. 41/WG21 Meeting No. 35, October 3-8, 2005

1. Opening activities

Clamage called the meeting to order at 09:06(GMT-05:00) on Monday, October 3, 2005

Clamage introduced John Hill, the chair of JTC1/SC22.

1.1 Opening comments

Stephen Michell welcomed everyone to Mont Tremblant, and described facilities for the meeting.

1.2 Introductions

Clamage had the attendees introduce themselves.

1.3 Membership, voting rights, and procedures for the meeting

Nelson reviewed membership and voting rules. Nelson then circulated the attendance list and membership list. Clamage reviewed procedures for the meeting.

1.4 Agenda review and approval

Clamage presented the agenda (document J16/05-0142 = WG21/N1882), and proposed the following amendments to it:

Motion to approve the agenda as amended:

Mover: Dawes
Seconder: Hedquist
WG favor oppose abstain
J16 lots 0 0
WG21 8 0 0

Sutter suggested that, since Concepts is a topic of interest to everyone, the committee will meet as a single group to discuss goals for Concepts, and the committee will meet again as a single group, perhaps on another day, to discuss the details of the proposals themselves (we have two competing proposals).

Stroustrup requested that the discussion of goals for Concepts be held Tuesday morning.

Austern suggested that a presentation that would compare the two competing proposals to add support for Concepts to C++ would be very valuable.

Sutter suggested that Austern could conduct this presentation himself, and Austern agreed. This presentation will take place on Thursday morning.

Stroustrup also noted that a discussion of Garbage Collection will take place on Thursday, after the Concepts presentation.

1.5 Distribution of position papers, WG progress reports, WG work plans for the week, and other documents that were not distributed before the meeting.

Core Working Group (CWG)

Miller reported that 17 CWG issues are currently in Ready state. These will be brought forward for movement to DR status. There are 14 CWG issues in review status.

Papers to be reviewed and possibly brought forward for approval at this meeting include:

Library Working Group (LWG)

Hinnant reported that the LWG has 31 papers to review. These papers mostly consist in proposals for changes or additions to either the C++ Standard Library, the TR1 libraries, or TR2. There are 8 LWG issues in Ready status, and these will be proposed for movement to DR status at this meeting.

Evolution Working Group (EWG)

Stroustrup described the EWG's activities for the coming week. In particular, he noted that there are several proposals concerning initialization before the EWG, and that he wants to deal with them as a group

Stroustrup also noted that there are several proposals before the EWG that the Working Group would like to wrap up, including proposals for "auto," "decltype," and "nullptr."

1.6 Approval of the minutes of the previous meeting

Motion to approve the minutes (document J16/05-0049 = WG21/N1789):

Mover: Plum
Seconder: Crowl

WG favor oppose abstain
J16 lots 0 0
WG21 8 0 0

1.7 Report on the WG21 Sunday meeting

Sutter reports:

1.8 Liaison reports

WG14 Liaison

P. J. Plauger reports:

TG5 Liaison

Plum reports:

1.9 Editor's report and WP approval

The current draft of the WP is J16/05-0064 = WG21/N1804. The editor's report corresponding to this draft is J16/05-0065 = WG21/N1805

Becker thanked Dawes, Adamczyk, Hinnant, Miller for their review of the draft.

Miller asked whether any progress had been made on adding revision bars to the draft. Becker replied that there wasn't, but that he would look into it.

Motion to accept the working paper J16/05-0064 = WG21/N1804 ):

Mover: Plauger
Seconder: Dawes

WG favor oppose abstain
J16 lots 0 1
WG21 8 0 0

1.10 New business requiring actions by the committee

2. Organize subgroups, establish working procedures.

We have three subgroups: Core, Library, and Evolution.

The committee broke into subgroups at 11:00 (GMT-05:00).

3. WG sessions (Core, Library, Performance, Evolution).

4. WG sessions continue.

5. WG sessions continue.

6. WG sessions continue.

7. General session.

7.1 WG status and progress reports.

Core Working Group

Miller presented Core Working Group status and reviewed formal motions to be made Saturday (for formal motions, see 9.1, below).

1. 18 CWG issues in Ready status will be moved for integration into the Working Draft. 13 issues have been moved to Ready status. The CWG has analyzed and prioritized 27 new issues, including 1 NAD, and has significantly reduced its drafting backlog.

2. The CWG has reviewed proposals for the following:

The general feeling on these proposals is that they are technically sound, and need some refinement in their wording.

Nelson reported that the CWG has agreed that, in the future, initial reviews might be conducted by one or two core members, before a proposal is presented to the CWG as a whole. This is expected to be a more efficient way of working.

Stroustrup suggested as well that CWG members can always participate in EWG proceedings, too.

Nelson responded by asking whether the wording of proposals is a collaborative activity in EWG proceedings.

Stroustrup answered that wording is mostly done between meetings.

Nelson suggested that proposed wording could be posted onto the Wiki or the reflectors.

Stroustrup noted that he has been encouraging exactly that.

Dawes inquired about the CWG's criteria for advancing proposals that have been advanced to them by the EWG.

Nelson replied that an imporant criterion for CWG is that a proposal has been implemented, because no usage experience can be claimed otherwise.

3.Straw polls

3.1. Move to advance the following core working group issues to DR status, and apply them to the Working Draft:
197, 237, 291, 299, 317, 348, 354, 382, 391, 401, 442, 446, 447, 450, 451, 470, 474, and 497.
(This is the list of issues in Ready status in J16/05-0104 = WG21/N1844, plus issue 237.)

WG favor oppose abstain
J16 lots 0 0
WG21 7 0 1

3.2. Move to adopt J16/05-0051 = WG21/N1791, "Extended friend Declarations" and update the Working Draft accordingly.

WG favor oppose abstain
J16 lots 0 0
WG21 7 0 1

3.3. Move to adopt J16/05-0071 = WG21/N1811, "Adding the long long Type to C++ (Revision 3)" and update the Working Draft accordingly.

WG favor oppose abstain
J16 lots 0 0
WG21 8 0 0

3.4. Move to adopt J16/04-0093 = WG21/N1653, "Working Draft Changes for C99 Preprocessor Synchronization" with the following two changes and update the Working Draft accordingly.

WG favor oppose abstain
J16 lots 0 0
WG21 8 0 0

Library Working Group

Hinnant presented Library Working Group status and reviewed formal motions to be made Saturday (for formal motions, see 9.1, below).

The LWG had been processing TR issues, DRs, and reviewing LWG extensions (proposals to C++0x and TR2).

8 issues in Ready status will be brought forward for promotion to DR status: 280, 461, 464, 465, 467, 468, 474, 496

On the topic of LWG issue 464, Sutter asked whether this should be part of a general review of container interfaces. Sutter referred the committee to "The Illusion of Container Equivalence" in _Effective STL_, by Scott Meyers.

Nelson expressed surprise that the DR process was being used to introduce an extension.

Hinnant noted that this is a very small change. In the past, LWG was very conservative when considering requests for extensions through Defect Reports. Now that WG21 has a Working Draft for a revised C++ standard, the general feeling in the LWG was that it could be slightly more liberal than before.

Discussion ensued as to whether items appearing in issues lists should be considered equivalent to individual papers.

Crowl asked about LWG issue 468. In particular, he inquired as to whether the resolution to this issue could affect source or binary compatibility.

Becker responded that the change described in the resolution to issue 468 replaces a conversion to void * to a conversion to an unspecified type that is implicitly convertible to void *, so existing implementations remain conforming. The change allows implementors to use a safer conversion, at the possible cost of backwards-compatibility.

Straw poll: Move to advance the following library working group issues to WP status, and apply them to the Working Draft: 280, 461, 464, 465, 467, 468, 474, 496.

WG favor oppose abstain
J16 lots 0 0
WG21 8 0 0

Hinnant reported that 24 issues were discussed, and 14 of those have been moved to Ready state.

30 proposal papers were reviewed. For each paper, a show of interest has been recorded. The following proposals were recommended by the LWG for possible inclusion in TR2:

Stroustrup asked where there was interest in or discussion of an infinite precision integral library.

Dawes answered that there was discussion of this in Lillehammer.

Plum asked how the LWG distinguishes between proposals for TR2 and proposals for C++0x.

Hinnant replied that extremely small proposals, or changes to existing libraries will tend to be considered for C++0x. New libraries will tend to be considered for TR2.

The following proposals were recommended by the LWG for possible inclusion in C++0x:

Nelson asked for the status in the CWG of the rvalue reference proposal.

Miller answered that the CWG has not yet reviewed this proposal, and will not bring it forward for approval at this meeting.

Sutter asked whether N1802 introduces new dependency cycles between existing standard headers.

Becker replied that he hasn't looked at this issue, specifically, but that he expects that it won't be a problem for implementors.

Hinnant drew attention to the proposal for two new iostream manipulators; of the two manipulators, the LWG likes one (though it dislikes the proposed name), and does not like the other. The LWG considered the alternate name "autofloat" for the manipulator that it favours. Stroustrup suggested the name "general," as another possibility.

Hinnant reported that there was some mild support for the idea of deprecating vector<bool> and providing the same functionality in the form of another class called, perhaps, bitvector.

The following proposals will be treated as Defect Reports:

The LWG discussed decimal types, and rejected N1850, "Towards a Better Allocator Model." Papers still to be discussed before the close of the meeting are N1838, "A Proposal to Add Sockets to the Standard Library," and N1883, "Preliminary Threading Library Proposal for TR2."

Plum recalled that, at the WG14 meeting that was held during the previous week, WG14 forwarded to WG21 some of the proposals that they had received. There was one such proposal that Plum thought would be particularly interesting to WG21: WG14/N1085, "Proposal to augment the interface of malloc/free/realloc/calloc." Is this proposal to be discussed?

Plauger answered that this paper will be discussed at the next meeting, if not this one.

Evolution Working Group

Evolution Working Group (EWG) will be making no formal motions Saturday.

Stroustrup reported on EWG activities and progress, noting that the list of proposals that were discussed is on the Wiki:

Work is underway to produce a unified proposal to add Concepts to C++0x. Work will continue between meetings.

The following proposals, related to initializers and initializer lists will be revised, with wording:

Maurer asked about the the status of N1448, "Controlling Implicit Template Instantiation." It appears to not have been forwarded to core.

Spicer replied that it is his responsibility to draft the wording for this proposal.

Future meetings:

See 10.1, below.

7.2 Presentation and discussion of DRs ready to be voted on. Straw votes taken.

see 6.1

8. WG sessions continue

9. Review of the meeting

9.1 Formal motions, including DRs to be resolved.

Core Working Group motions

1. Move to advance the following core working group issues to DR status, and apply them to the Working Draft:
197, 237, 291, 299, 317, 348, 354, 382, 391, 401, 442, 446, 447, 450, 451, 470, 474, and 497.
(This is the list of issues in Ready status in J16/05-0104 = WG21/N1844, plus issue 237.)

Mover: Abrahams
Seconder: Caves
WG favor oppose abstain
J16 20 0 0
WG21 8 0 0

2. Move to adopt J16/05-0051 = WG21/N1791, "Extended friend Declarations" and update the Working Draft accordingly.

Mover: Nelson
Seconder: Hinnant
WG favor oppose abstain
J16 20 0 0
WG21 8 0 0

3. Move to adopt J16/05-0071 = WG21/N1811, "Adding the long long Type to C++ (Revision 3)" and update the Working Draft accordingly.

Mover: Hinnant
Seconder: Caves
WG favor oppose abstain
J16 20 0 0
WG21 8 0 0

4. Move to adopt J16/04-0093 = WG21/N1653, "Working Draft Changes for C99 Preprocessor Synchronization" with the following two changes and update the Working Draft accordingly.

Mover: Nelson
Seconder: Abrahams
WG favor oppose abstain
J16 19 0 0
WG21 8 0 0

Library Working Group motions

1. Move to advance the following library working group issues to WP status, and apply them to the Working Draft: 280, 461, 464, 465, 467, 468, 474, 496.

Mover: Hinnant
Seconder: Plauger
WG favor oppose abstain
J16 19 0 0
WG21 8 0 0

Evolution Working Group motions

None.

9.2 Review of action items, decisions made, and documents approved by the committee

None.

9.3 Issues delayed until Saturday

Hinnant moved to thank those that provided projectors, noting that they allowed the working groups to complete a considerable volume of work at this meeting. Applause.

Goldthwaite moved to thank Dinkumware for providing the Wiki and the network. Applause

Nelson moved to thank the host. Applause.

10. Plans for the future

10.1 Next meeting

The next meeting will be located in Berlin during the week of April 1, 2006. Meeting information is already available on the committee website.

The following meeting will take place during the week of October 14, 2006, in Portland, OR. The meeting hosts are Intel and ANSI.

Plum is organizing TG5 Liaison meetings on the Friday afternoon immediately following each of these two meetings. Plum notes that WG21/J16 members can submit comments to TG5 through WG21 itself, or through their National Body. Those members that chose to submit a comment through their NB should ensure that that NB is represented at the TG5 Liaison in Portland.

No host has yet been determined for the spring 2007 meeting.

The fall 2007 may be colocated with SC22. The tentative location for this meeting is Kona, HI.

Stroustrup has offered to host a future meeting in College Station, TX. Sutter requested feedback from the committee on the possibility of a Spring 2007 meeting in College Station. No objection was raised.

Sutter also requested feedback on the idea of regularly holding six-day meetings, as we did this week, rather than our customary five-day meetings. Discussion ensued.

Nelson suggested that working groups meet on the Sunday prior to the meeting for possible informal technical sessions.

Goldthwaite suggested that WG21 work all day Friday, with the close of meeting on Friday afternoon.

Sutter conducted three straw polls:

1. Are you in favour of six-day meetings that adjourn on Saturday?

favour oppose
23 9

2. Are you in favour of five-day meetings that adjourn on Friday afternoon?

favour oppose
28 0

3. Are you in favour of six-day meetings that begin early, on Sunday?

favour oppose
15 8

Sutter will take direction from the outcome of these straw polls to make Friday a full working day at some meeting or meetings in the future.

10.2 Mailings

Nelson reported the following mailing deadlines:

post-meeting mailing October 21 2005
midterm mailing December 16 2005
pre-meeting mailing February 24 2006

Nelson has stepped down as ANSI International Representative, and will stay on as Vice Chair. Barry Hedquist will assume the role of International Representative.

Nelson moved to thank the host. Applause.

10.3 Following meetings

covered on Monday.

Motion to adjourn

Mover: Abrahams
Seconder: Dawes

WG favor oppose abstain
J16 lots 0 0
WG21 8 0 0

Applause.

Meeting adjourned at 09:20(GMT-05:00)

Attendance

Company/Organization Representative Mon Tue Wed Thu Fri Sat
Abrahams David Abrahams V V V V V V
Adobe Systems Mat Marcus V V V V V V
AT&T Bjarne Stroustrup V V V V V V
Dawes Beman G. Dawes V V V V V V
Dinkumware P. J. Plauger V V V V V
Dinkumware Pete Becker A A A A A A
Dinkumware Tana Plauger A A A A A A
Dinkumware Christopher Walker A A A
Edison Design Group Daveed Vandevoorde A A A A A A
Edison Design Group John H. Spicer V V V V V V
Edison Design Group William M. Miller A A A A A A
Fermi Nat. Accelerator Lab Marc F. Paterno V V V V V V
Freescale Howard E. Hinnant V V V V V V
Gimpel Software James Gimpel A A A A A A
Gimpel Software James Widman A A A A A A
Google Matthew Austern A A A A A A
Hewlett-Packard Premanand Rao V V V V V V
Hewlett-Packard Hans Boehm A A A A A
IBM Robert Klarer V V V V V V
IBM Michael Wong A A A A A A
Indiana University Doug Gregor V V V V V V
Indiana University Andrew Lumsdaine A A A
Intel Clark Nelson V V V V V V
Intel Judy Ward A A A A A A
Mentor Graphics Antonio Bigazzi V V V V V V
Microsoft Jonathan Caves V V V V V V
Microsoft Herb Sutter A A A A A A
Perennial Barry Hedquist V V V V V V
Plum Hall Thomas Plum V V V V V V
Plum Hall Francis W. Glassborow A A A A A V
Polytechnic University Herve Bronnimann A A A A
Programming Research Richard Corden V V V V V V
Red Hat Jason Merrill V V V V V V
Red Hat Benjamin Kosnik A A A A A A
Rogue Wave Software Martin Sebor V V V V
Seymour Bill Seymour A A A A A A
Sun Microsystems Lawrence Crowl V V V V V V
Sun Microsystems Stephen D. Clamage A A A A A A
Tele Atlas Jon Hancock A A A A
Tele Atlas Alan Talbot A A A A
Zephyr Associates Thomas Witt V V V V V V
Bleading Edge Software Jack Reeves N N N N N
CrystalClear Software Jack Reeves N N N N N
EAI-Systems Dietmar Kühl N N N N N N
FSG/SC22 Nick Stoughton N N
INRIA Sylvain Pion N N N N
Integrable Solutions Gabriel Dos Reis N N N N N N
IS Teledata Jens Maurer N N N N N N
JTC1 SC22 John L. Hill N
LM Ericsson Finland Attila Fehér N N N N N N
Ramtex International Thorsten Ottosen N N N N N N
RAP Keld Simonsen N N N N
Rice University Jeremy Siek N N N N N N
Symantec Mike Spertus N N
Texas A&M Jaako Järvi N N N N N
Toshiba Seiji Hayashida N N N N N N
Vollman Engineering Detlef Vollman N N N N N N
Reg Charney N N N N N
Lois Goldthwaite N N N N N N
Alisdair Meredith N N N N N N