Doc No: SC22/WG21/N1993 J16/06-0063 Date: 2006-04-18 Project: JTC1.22.32 Reply to: Robert Klarer IBM Canada, Ltd. klarer@ca.ibm.com

Minutes of J16 Meeting No. 42/WG21 Meeting No. 37, April 3-7, 2006

1. Opening activities

Clamage called the meeting to order at 09:13(GMT+01:00) on Monday, April 3, 2006

1.1 Opening comments

Cord Wischöfer, speaking on behalf of DIN, welcomed everyone to Berlin, and described facilities for the meeting. SAP has sponsored daily lunches for the committee.

1.2 Introductions

Clamage had the attendees introduce themselves.

1.3 Membership, voting rights, and procedures for the meeting

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

1.4 Agenda review and approval

Clamage presented the agenda (document J16/06-0011 = WG21/N1941):

Motion to approve the agenda:

Mover: Klarer
Seconder: Dawes
WG favor oppose abstain
J16 lots 0 0
WG21 9 0 0

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)

Adamczyk reported that the CWG would continue to work through issues, and would discuss papers that had been forwarded to Core by EWG. Specific EWG papers to be addressed by Core included, among others, those proposing rvalue references, auto, and delegating constructors.

Maurer recommended that EWG proposals be submitted to a CWG member for first review before they are submitted to Core as a whole. Maurer himself offered to provide a first review of EWG proposals.

Library Working Group (LWG)

Hinnant reported that the LWG has 10 or 12 new 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 15 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, and endorsed Maurer's suggestion (see above).

Stroustrup asked for a session in which LWG and EWG could meet to discuss an overall plan; the purpose of such a plan would be to coordinate the efforts of the two groups to avoid duplication of work, and to avoid mutual interference with respect to schedules and technical work.

1.6 Approval of the minutes of the previous meeting

Motion to approve the minutes (document J16/05-0175 = WG21/N1915) with the following amendment: change "Jack Reeves, Crystal Clear Software" to "Jeff Garland, Crystal Clear Software."

Mover: Klarer
Seconder: Brown

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

1.7 Report on the WG21 Sunday meeting

Sutter reports:

1.8 Liaison reports

WG14 Liaison

P. J. Plauger reports:

WG14 currently has three projects underway:

As well, P. J. Plauger notes that WG14 has cleared its DR backlog.

1.9 Editor's report and WP approval

The current draft of the WP is J16/05-0165 = WG21/N1905. The editor's report corresponding to this draft is J16/05-0166 = WG21/N1906

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

Miller notes: after he reviewed the paper, it was noticed that one issue has an incorrect resolution; CWG issue 559 has been opened to handle this.

Motion to accept the working paper (J16/05-0165 = WG21/N1905 ):

Mover: Hinnant
Seconder: Hedquist

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

1.10 New business requiring actions by the committee

1.10.1 C++/CLI

Since the C++/CLI ballot is currently underway, there will be no WG21 discussion of this item this week. There will be a US TAG meeting to clarify the timing and purpose of the letter ballot on Monday at 17:30.

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

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

Status updates:

  1. the CWG discussed J16/06-0030 = WG21/N1960 on extern template, and recommended some minor editorial changes to the paper; the CWG wishes to move this paper for formal adoption at the next meeting
  2. the CWG discussed J16/05-0154 = WG21/N1894 on 'auto' type, and recommended a minor technical change and a few editorial changes to the paper; the CWG wishes to move this paper as well for formal adoption at the next meeting
  3. the CWG discussed J16/05-0155 = WG21/N1895 on delegating constructors and suggested a moderately significant technical change regarding the starting point of the lifetime of a constructed entity; barring further objections; again, the CWG expects to move this proposal for formal adoption at the next meeting
  4. the CWG discussed J16/06-0042 = WG21/N1972 on generalized constant expressions, and were in agreement with the general concepts and the presentation, and will recommend some wording improvements
  5. the CWG discussed J16/05-0006 = WG21/N1746 on extended integer types; they recovered a forgotten list of minor issues and the paper will be revised for review at the next meeting
  6. the CWG provided some comments on J16/06-0041 = WG21/N1971 (alignof) and J16/06-0031 = WG21/N1961 (range-based for loop)

Stroustrup expressed concern that, during the next meeting or two, the number and scale of proposals submitted to CWG from EWG will increase significantly, and the CWG should consider new strategies for improving the rate at which it processes extension proposals. A discussion ensued about the level to which a proposal should be complete before the CWG will recommend it for adoption and inclusion in the Working Paper. There was also discussion about the potential use, in LWG, of language extensions that are currently being developed by EWG or CWG: would LWG members use language features that are not currently in the Working Paper?

Stroustrup stresed the need for feedback from LWG on the new language features, since that feedback will be very useful to EWG. This is an important reason for LWG to begin using the new language features early. "We need an iterative process, not a waterfall."

P. J. Plauger suggested that he would be happy to try new language features provided an implementation was available to him.

Crowl noted that most of the compiler implementors in this group do not have the authority to implement new language features because management determines how their time is used, and management won't approve new language features for implementation until they are in the standard.

Dawes suggested that LWG should prepare a list of those language features are of highest priority to the library.

Spicer and Sutter argued that the key to getting more work done is to work better between meetings.

Adamczyk asked whether any members of the group would object to a vote, during formal motions on Friday, on updated versions of J16/06-0030 = WG21/N1960 and J16/05-0154 = WG21/N1894 , provided the editorial issues in those papers were corrected in advance of the vote? No objection was raised.

Stroustrup asked whether the group would be willing to entertain a vote on J16/05-0155 = WG21/N1895 , provided it was corrected to address the known minor technical issue before voting on Friday (see results of straw poll below).

Discussion ensued.

Straw poll:

If wording for J16/05-0155 = WG21/N1895 delegating constructors was available at 9:00am Friday, and this revised paper was endorsed by members of CWG, would you be willing to vote on the revised proposal at 2:00pm?

WG favor oppose abstain
J16 lots 1 3
WG21 6 0 4

Straw poll (this was a single straw poll to cover five uncontroversial motions):

1. Move all issues in Ready status in J16/06-0005 = WG21/N1935 , excluding 488 and 530, to DR status and into the Working Draft. Issue numbers are 86, 420, 463, 464, 466, 479, 486, 492, 510, 513, 518, 519, and 525.

2. Move to request the project editor to replace the first sentence of 14.6p3 of document J16/05-0165 = WG21/N1905 with the following text:

When a qualified-id is intended to refer to a type that is not a member of the current instantiation (14.6.2.1) and its nested-name-specifier depends on a template-parameter (14.6.2), it shall be prefixed by the keyword typename, forming a typename-specifier.

3. Adopt J16/05-0017=WG21/N1757 J16/05-0017 = WG21/N1757 , "Right Angle Brackets (Revision 2)."

4. Adopt a revised paper based on J16/06-0030 = WG21/N1960 , "extern template."

5. Adopt a revised paper based on J16/05-0154 = WG21/N1894 , "auto."

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

Library Working Group

Hinnant presented Library Working Group status and reviewed formal motions to be made Friday (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).

Hinnant reported that 24 issues were discussed, and 14 of those have been moved to Ready state. He then reviewed the following motions and asked, for each, whether any member anticipated voting no to any of them during the Friday session. No opposition to these motions was indicated.

1. Move Ready issues into C++0X Working Paper: 247, 294, 362, 369, 371, 376, 384, 475, 478, 495, 497, 505, 507, 508, 519

2. Adopt the proposed wording from J16/05-0082 = WG21/N1822 , on a max_digits10 member for std::numeric_limits, into the C++0X working draft.

3. Adopt the proposed text in minmax_proposal.html into the C++0X working draft.

4. Adopt the proposed text in manip_proposal.html into the C++0X working draft.

Hinnant then reviewed the following motion:

5. Adopt the proposed text from D1981 ("Uniform use of std::string Revision 1") into the C++0X working draft.

Brown asked whether this document number could be changed from a D number to an N number.

Nelson reported that he would object to a formal vote on a paper with a D number.

Hinnant responded by confirming that a paper with an N number would be prepared immediately after the end of the Thursday session. He then asked whether any member anticipated voting no to J16/06-0051= WG21/N1981 during the Friday session. No opposition was indicated.

6. Adopt the proposed text in J16/05-0173 = WG21/N1913 , "A proposal to improve const_iterator use (Revision 3)," into the C++0X working draft.

Again, Hinnant asked whether any member anticipated voting no to this motion. No opposition was indicated.

7. Adopt the first Library Technical Report into the C++0X working draft.

Sutter noted that the special math functions are among library components that are intended for inclusion by this motion. In Oxford, we agreed that there would be fair warning at such a time that special math was being proposed for inclusion in C++0x, so that time is now.

Ottosen asked what would happen should core features emerge that make TR1 libraries redundant?

Hinnant replied that the LWG has decided that, in such an event, the obsolete library will be removed from the Working Paper.

Nelson and Caves expressed a desire to vote on special math separately from the other TR1 components.

Dos Reis expressed a desire to vote on type_traits separately from the other TR1 components.

Straw poll on the adoption of TR1 type_traits into the C++0x working draft:

WG favor oppose abstain
J16 22 0 4
WG21 8 1 1

Straw poll on the adoption of TR1 special math functions into the C++0x working draft:

WG favor oppose abstain
J16 11 7 6
WG21 3 5 2

Straw poll on the adoption of the remainder of TR1 into the C++0x working draft:

WG favor oppose abstain
J16 20 1 2
WG21 10 0 0

8. Adopt the proposed text in J16/06-0045 = WG21/N1975 into the second Library Technical Report (TR2).

Once more, Hinnant asked whether any member anticipated voting no to this motion. No opposition was indicated.

9. Submit J16/06-0047 = WG21/N1977 to ISO for opening a new Technical Report concerning decimal types for C++.

Gibbons stated that he didn't see a significant need for decimal floating point arithmetic.

Straw poll:

WG favor oppose abstain
J16 18 2 4
WG21 8 1 1

Evolution Working Group

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

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

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

Sutter moved to thank the host. Applause.

9.1 Formal motions, including DRs to be resolved.

Core Working Group motions

1) Move all issues in Ready status in J16/06-0005 = WG21/N1935 , excluding 488 and 530, to DR status and into the Working Draft. Issue numbers are 86, 420, 463, 464, 466, 479, 486, 492, 510, 513, 518, 519, and 525.

Mover: Adamczyk
Seconder: Hedquist
WG favor oppose abstain
J16 20 0 0
WG21 9 0 0

2) Move to request the project editor to replace the first sentence of 14.6p3 of document J16/05-0165=WG21/N1905 J16/05-0165 = WG21/N1905 with the following text:

When a qualified-id is intended to refer to a type that is not a member of the current instantiation (14.6.2.1) and its nested-name-specifier depends on a template-parameter (14.6.2), it shall be prefixed by the keyword typename, forming a typename-specifier.
Mover: Adamczyk
Seconder: Corden
WG favor oppose abstain
J16 20 0 0
WG21 9 0 0

3) Adopt J16/05-0017 = WG21/N1757 , "Right Angle Brackets (Revision 2)".

Mover: Adamczyk
Seconder: Widman
WG favor oppose abstain
J16 20 0 0
WG21 9 0 0

4) Adopt J16/06-0057 = WG21/N1987 , "Adding 'extern template' (version 2)". (On the Core Wiki as D1987.)

Mover: Adamczyk
Seconder: Merrill
WG favor oppose abstain
J16 20 0 0
WG21 9 0 0

5) Adopt J16/06-0056 = WG21/N1986 , "Delegating Constructors (revision 3)". (In the Documents section of Wiki.)

Mover: Adamczyk
Seconder: Glassborow
WG favor oppose abstain
J16 16 2 3
WG21 8 0 1

6) Adopt J16/06-0054=WG21/N1984 J16/06-0054 = WG21/N1984 , "Deducing the type of variable from its initializer expression (revision 4)". (On the Core Wiki.)

Mover: Adamczyk
Seconder: Hedquist
WG favor oppose abstain
J16 19 2 0
WG21 9 0 0

The Danish delegation left the room at this time.

Hinnant reviewed a list of those proposals in EWG that LWG needs so that it can begin the work of translating the standard library in C++0x:

Kühl also noted the need for an implementation of auto.

Library Working Group motions

1. Move Ready issues into C++0X Working Paper: 247, 294, 362, 369, 371, 376, 384, 475, 478, 495, 497, 505, 507, 508, 519.

Mover: Hinnant
Seconder: Dawes
WG favor oppose abstain
J16 21 0 0
WG21 8 0 0

Nelson requested that, in the future, papers that are the subject of a formal motion and are not yet in a mailing be placed on the "formal motions" page of the Wiki.

2. Adopt the paper J16/05-0082 = WG21/N1822 (on a max_digits10 member for std::numeric_limits) into the C++0X working draft.

Mover: Hinnant
Seconder: Dawes
WG favor oppose abstain
J16 21 0 0
WG21 8 0 0

3. Adopt the paper J16/06-0060 = WG21/N1990 ("Proposed Text for minmax") into the C++0X working draft.

Mover: Hinnant
Seconder: Kosnick
WG favor oppose abstain
J16 21 0 0
WG21 8 0 0

4. Adopt the paper J16/06-0061 = WG21/N1991 ("Proposed Text for defaultfloat") into the C++0X working draft.

Mover: Hinnant
Seconder: Dawes
WG favor oppose abstain
J16 21 0 0
WG21 8 0 0

5. Adopt the paper J16/06-0051= WG21/N1981 ("Uniform use of std::string Revision 1") into the C++0X working draft.

Mover: Hinnant
Seconder: Glassborow
WG favor oppose abstain
J16 21 0 0
WG21 8 0 0

6. Adopt the paper J16/05-0173 = WG21/N1913 ("A proposal to improve const_iterator use (Revision 3)") into the C++0X working draft.

Mover: Hinnant
Seconder: Dawes
WG favor oppose abstain
J16 21 0 0
WG21 8 0 0

7. Adopt the first ISO Technical Report on C++ Library Extensions, sections 2, 3, 5.1, 6, 7, 8, Appendix A into the C++OX working draft.

Vollmann asked whether the intention of the formal motion was to move the text of TR1 as amended by recent DRs?

Hinnant expressed the belief that the amendments should be applied separately.

P. J. Plauger proposed a friendly amendment to the formal motion to move the document as amended by the DRs into the C++0x working draft.

Meredith asked whether the motion should say that TR1 entities will be declared in the namespace std, rather than the namespace std::tr1?

Hinnant replied that issues such as these are the reason that section 1 is excluded from the formal motion.

Dawes proposed a friendly amendment to the formal motion to specify that the library entities will be "moved into namespace std."

Mover: Hinnant
Seconder: Marcus
WG favor oppose abstain
J16 21 0 0
WG21 8 0 0

8. Adopt the first ISO Technical Report on C++ Library Extensions, section 4 into the C++OX working draft.

Dawes proposed two friendly amendments to the formal motion:

  1. the text should be adopted as amended by all appropriate DRs
  2. library entities declared in this section should be moved into namespace std from namespace std::tr1
Mover: Hinnant
Seconder: Dawes
WG favor oppose abstain
J16 21 0 0
WG21 7 0 1

9. Adopt the paper J16/06-0045 = WG21/N1975 ("Filesystem Library Proposal for TR2 (Revision 3)") into the second Library Technical Report (TR2).

Mover: Hinnant
Seconder: Dawes
WG favor oppose abstain
J16 21 0 0
WG21 8 0 0

10. Apply to ISO for registration of a Technical Report on decimal types for C++. J16/06-0047 = WG21/N1977 is the initial draft of the technical report.

Glassborow reported that the UK delegation has doubts about the value of decimal floating-point arithmetic

Dos Reis requested a brief review of the status of IEEE-754r.

Klarer responed by reporting that IEEE-754r has recently been meeting weekly to finish off the draft of their revised standard, and that it is very likely that the draft will go to ballot in the fall. Though details of the decimal arithmetic and encoding may change as IEEE-754r continue their work, the text of the C++ draft TR itself will not be affected by those changes.

Mover: Hinnant
Seconder: Dawes
WG favor oppose abstain
J16 20 1 0
WG21 7 0 1

Evolution Working Group motions

None.

Sutter asked all members in attendance whether, if there were to be an ad hoc meeting of people interested in concurrency and memory model issues, they would be interested in coming?

Discussion ensued.

P. J. Plauger suggested to Sutter that he propose such a meeting in writing, giving at least two months notice, an agenda, and a list of alternate dates.

It was resolved that LWG members who are interested in this topic should subscribe to the -ewg reflector.

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

None.

9.3 Issues delayed until Friday

10. Plans for the future

10.1 Next meeting

The next meeting will take place during the week of October 15-20, 2006, in Portland, OR. The meeting hosts are Intel and ANSI. OOPSLA is in Portland October 22-26, 2006

Nelson reviewed meeting facilities for the next meeting. The conference centre will be a free light rail trip from downtown Portland. The meeting will run all day Friday.

Nelson emphasized that conference centre area is secure, and a keycard is required for access. The conference centre is a part of the hotel. All meeting attendees must register either for the hotel or for access. This information is in the pre-meeting mailing.

10.2 Mailings

Nelson reported the following mailing deadlines:

post-meeting mailing April 21 2006
midterm mailing June 23 2006
pre-meeting mailing September 8 2006

10.3 Following meetings

Sutter reported that the Spring 2007 meeting is tentatively scheduled for Oxford. Financial sponsorship is being requested from among the committee's member organizations. BSI will organize this meeting.

Marcus asked whether this meeting be adjacent to an ACCU conference, and Sutter indicated that this is a possibility.

The Fall 2007 meeting will be located in Kona, HI. Plum reported that the tentative dates are:

These dates were determined with the assumption that the Ironman Triathlon will take place during the week beginning Sunday, Oct 14. It is possible, however, that Ironman will be moved to different week. If so, the WG14 meeting will take place from September 24th to 28th, or from October 15th to 19th (Yom Kippur is Saturday, September 22nd). OOPSLA 2007 will be held from September 21st to 25th.

Motion to adjourn

Mover: Hedquist
Seconder: Dawes

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

Applause.

Meeting adjourned at 09:20(GMT+01:00)

Attendance

Company/Organization Representative Mon Tue Wed Thu Fri
Adobe Systems Mat Marcus V V V V V
Apple Computer Howard Hinnant V V V V V
Bleading Edge Software Jack Reeves V V V V V
Borland International Alisdair Meredith V V V V V
Dawes Beman G. Dawes V V V V V
Dinkumware P. J. Plauger V V V V V
Dinkumware Tana Plauger A A A A A
Dinkumware Christopher Walker A A A
Edison Design Group Steve Adamczyk V V V V V
Edison Design Group Daveed Vandevoorde A A A A
Edison Design Group John H. Spicer A A A A A
Edison Design Group William M. Miller A A A A A
Fermi Nat. Accelerator Lab Walter Brown V V V V V
Freescale Andreas Hommel V V V V V
Gimpel Software James Widman V V V V V
Google Bill Gibbons V V V V V
Hewlett-Packard Premanand Rao V V V V V
Hewlett-Packard Hans Boehm A A A A A
IBM Robert Klarer V V V V V
IBM Michael Wong A A A A A
Indiana University Doug Gregor V V V V
Intel Clark Nelson V V V V V
Mentor Graphics Antonio Bigazzi V V V V V
Microsoft Jonathan Caves V V V V V
Microsoft Herb Sutter A A A A A
Perennial Barry Hedquist V V V V V
Plum Hall Thomas Plum V V V V V
Plum Hall Francis W. Glassborow A A A A A
Programming Research Richard Corden V V V V V
Red Hat Jason Merrill V V V V V
Red Hat Benjamin Kosnik A A A A A
Rogue Wave Software Martin Sebor V V V V
Roundhouse Consulting Pete Becker A A A A
Seymour Bill Seymour V V V V
Sun Microsystems Lawrence Crowl V V V V V
Sun Microsystems Stephen D. Clamage A A A A A
Symantec Mike Spertus A A A A A
Texas A&M Bjarne Stroustrup A A A A A
Texas A&M Jaakko Järvi V V V V V
Zephyr Associates Thomas Witt V V
BA Loerrach Richard Kaiser N N
EAI-Systems Dietmar Kühl N N N N N
Google Gerhard Wesp N N N N N
ILOG Georges Schumacher N N N N N
INRIA Sylvain Pion N N N N N
Integrable Solutions Gabriel Dos Reis N N N N N
IS Teledata Jens Maurer N N N N N
LM Ericsson Finland Attila Fehér N N N N N
Native Instruments Olaf Krzikalla N
Ramtex International Thorsten Ottosen N N N N N
Rice University Jeremy Siek N N N N
SUSE/Novell Paolo Carlini N N N N
Teleatlas Alan Talbot N N N N N
Toshiba Seiji Hayashida N N N N N
University of Cambridge N. M. Maclaren N N N N
The University of Seoul Yong Woo Lee N N N
Vollmann Engineering Detlef Vollmann N N N N N
Lois Goldthwaite N N N N N
James Kanze N N N N N
Bronek Kozicki N N N N
Valentin Samko N N N N N
Jonathan Turkanis N N N N